将一张面额50元的钱币换成1元、5元、10元、20元的零钱,要求每种面额的零钱都要有,输出共几种方案,以及每一种方案。
输入格式:
无
输出格式:
输出每一种方案,以及共几种方案。
输入样例:
在这里给出一组输入。例如:
输出样例:
在这里给出相应的输出。例如:
可换得1元5张,5元1张,10元2张,20元1张。
可换得1元5张,5元3张,10元1张,20元1张。
可换得1元10张,5元2张,10元1张,20元1张。
可换得1元15张,5元1张,10元1张,20元1张。
共4种方案。
Python:
#written by wanghongwei in 2024/3/12
def calculate_money():
money = int(input("请输入钱币的面额:"))
count = 0
for i in range(1, money+1):
for j in range(1, money//5+1):
for k in range(1, money//10+1):
for m in range(1, money//20+1):
if (i + 5*j + 10*k + m*20) == money:
count += 1
print("可换得1元{}张,5元{}张,10元{}张,20元{}张。".format(i, j, k, m))
print("共{}种方案。".format(count))
calculate_money()
C:
#include <stdio.h>
/*
written by wanghongwei in 2024/3/12
*/
int money;//钱币的面额
int count = 0;//记录方案 种数
void calculate_money();
void calculate_money(){
int i,j,k,m;
for(i=1;i<=money;i++)
{
for(j=1;j<=(money/5);j++)
{
for(k=1;k<=(money/10);k++)
{
for(m=1;m<=(money/20);m++){
if((i+5*j+10*k+m*20)==money)
{
count++;
printf("可换得1元%d张,5元%d张,10元%d张,20元%d张。\n",i,j,k,m);
printf("共%d种方案",count);
}
}
}
}
}
}
int main()
{
printf("请输入钱币的面额:\n");
scanf("%d",&money);
calculate_money(money);
return 0;
}