1、问题及代码
/*
*Copyright (c)2020,CSDN学院
*All rights reserved.
*文件名称:main.c
*作 者:李先声
*完成日期:2020年11月22日
*版 本 号:v1.0
*问题描述:【项目4-换分币】
用一元人民币兑换成1分、2分和5分硬币,有多少种不同的兑换方法?请输出所有可能的方案。
提示:根据题意设i,j,k分别为兑换的1分、2分、5分硬币的枚数,
则i,j,k的值应满足:i+j*2+k*5=100,根据取值范围构造循环解题即可。
*/
#include <stdio.h>
int main()
{
int i,j,k,n=0;
for(i=0;i<=100;i++)
for(j=0;j<=50;j++)
for(k=0;k<=20;k++)
{
if(i+2*j+5*k==100)
{
++n;
printf("第%d种一元兑换硬币方案为:%d枚1分硬币、%d枚2分硬币和%d枚5分硬币\n",n,i,j,k);
//每输出50个方案暂停一次
if(n%50==0)
{
printf("按任意键继续输出……\n");
getchar();
}
}
}
return 0;
}
2、计算结果
通过计算可以看到,一共有541种方案。计算结果就不在此输出。
3、小结
对照老师提供的答案后,我学到了一个小技巧:对于这种输出量较大的题目,输出时可以采用分步输出。