7-4 人民币兑换 (10 分)及此类问题的思路
1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,会有很多种兑换方案。请编写程序给出各种兑换方案。
输入格式:
输入为一个正整数n,表示要求输出前n种可能的方案。方案的顺序,是按照5分硬币从少到多排列的。
输出格式:
显示前n种方案中5分、2分、1分硬币各多少枚。每行显示一种方案,数字之间空一格,最后一个数字后没有空格。
注意:如果全部方案不到n种,就顺序输出全部可能的方案。
输入样例:
5
输出样例:
1 46 53
2 42 56
3 38 59
4 34 62
5 30 65
代码:
#include <stdio.h>
*int*main()
{
*int*n;
scanf("%d",&n);
*int*x=0;
*for*(*int*i=1;i<=30;i++)//
*for*(*int*j=1;j<=75;j++)//
*for*(*int*k=1;k<=100;k++)//输出所有结果
*if*(i*0.05+j*0.02+k*0.01==1.5 && i+k+j==100 && x<n)
{//根据题意判断
printf("%d %d %d\n",i,j,k);
x++;
}
}
解释:
此类问题的做法应该是:用for循环吧所有能够出现的结果全部循环输出出来,然后在最后用if语句判断,判断结束后输出符合的结果。
如果觉得博客不错不如点个赞,评论一下!