现有面值1,5,10,20元的钞票,输入n元为商品的价格,问有多少种支付的方式。
思路:用循环嵌套实现。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
int sum = 0;
int value1,value5,value10,value20;//每一种钱币的使用数量
printf("请输入总价:\n");
scanf("%d",&n);
printf("1元\t5元\t10元\t20元\t\n");
for(value1 = 0;value1<=n;value1++)
{
for(value5 = 0;value5/5<=n;value5++)
{
for(value10 = 0;value10/10<=n;value10++)
{
for(value20 = 0;value20/20<=n;value20++)
{
if(value1+value5*5+value10*10+value20*20>n)
break;
if(value1+value5*5+value10*10+value20*20==n)
{
sum++;
printf("%d\t%d\t%d\t%d\t\n",value1,value5,value10,value20);
}
}
}
}
}
printf("共有%d种组合方式",sum);
return 0;
}
运行: