1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,会有很多种兑换方案。请编写程序给出各种兑换方案。 输入格式: 输入为一个正整数n,表示要求输出前n种可能的方案。方案的顺序,是按照5分硬币从少到多排列的。 输出格式: 显示前n种方案中5分、2分、1分硬币各多少枚。每行显示一种方案,数字之间空一格,最后一个数字后没有空格。 注意:如果全部方案不到n种,就顺序输出全部可能的方案。C语言
时间: 2023-05-25 19:07:09 浏览: 186
#include<stdio.h>
int main()
{
int n,num=0;
scanf("%d",&n);
for(int i=0;i<=20;i++) //5毛最多20个
{
for(int j=0;j<=50;j++) //5分最多50个
{
for(int k=0;k<=125;k++) //2分最多125个
{
if(i*5+j*1+k*0.5<=20) //1元5角硬币最多20个
{
if(i*5+j*1+k*0.5<=j+2*k+5*(n-1)) //只输出前n种
{
printf("%d %d %d\n",i,j,k);
num++;
if(num==n){goto end;} //跳出多重循环
}
}
}
}
}
end:return 0;
}
相关问题
产品说明书:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。因果图
```mermaid
graph TD
硬币-->检查硬币
检查硬币-->|1元5角|选择饮料
检查硬币-->|2元|退还5角
选择饮料-->|可乐|出货
选择饮料-->|雪碧|出货
选择饮料-->|红茶|出货
出货-->找零
退还5角-->找零
找零-->结束
```
--相关问题--:
1. 如何实现自动售货机的硬币找零功能?
2. 如何在自
1.完成下面的程序设计: 设计一个处理单价为5角钱的饮料的自动售货机程序,相应规格说明如下: 若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。(每次只投入一个硬币,只押下一种饮料的按钮) 如投入5角的硬币,按下按钮后,总有饮料送出。 若售货机没有零钱找,则一个显示〖零钱找完〗的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。 若有零钱找,则显示〖零钱找完〗的红灯不会亮,若投入 1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。
以下是一个简单的自动售货机程序设计,实现了上述的功能要求:
```python
class VendingMachine:
def __init__(self):
self.balance = 0
self.change = 0
self.change_available = False
def insert_coin(self, coin):
if coin == 0.5 or coin == 1:
self.balance += coin
return True
else:
return False
def select_product(self, product):
if product == "orange_juice" and self.balance >= 0.5:
self.balance -= 0.5
self.change = 0
return True
elif product == "beer" and self.balance >= 0.5:
self.balance -= 0.5
self.change = 0.5
return True
elif product == "beer" and self.balance == 0.25 and self.change_available:
self.balance = 0
self.change_available = False
return True
else:
return False
def make_change(self):
if self.change_available:
self.balance -= 1
self.change_available = False
return self.change
else:
return 0
def return_coin(self):
coin = self.balance
self.balance = 0
return coin
def has_change(self):
return self.change_available
def set_change(self):
self.change_available = True
```
使用时,可以按照以下步骤:
```python
vm = VendingMachine()
# 插入硬币
vm.insert_coin(0.5)
# 选择饮料
if vm.select_product("orange_juice"):
print("Enjoy your orange juice!")
else:
print("Please insert 50 cents.")
# 如果找不了零,再插入1元硬币
if not vm.has_change():
vm.insert_coin(1)
# 再次选择饮料
if vm.select_product("beer"):
print("Enjoy your beer and your 50 cents change!")
else:
print("Please insert 50 cents.")
# 查看是否有零钱找
if vm.has_change():
vm.make_change()
else:
print("Sorry, no change available.")
# 退回硬币
coin = vm.return_coin()
print("You got", coin, "cents back.")
```
阅读全文