人民币兑换
7-2 人民币兑换
分数 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
解题思路
我们程序中设置三个变量,five two one 分别代表五分两分和一分,根据题意可知,五分,二分和一分数值的钱 组合到一元五角(150分)合计最多100枚,即 five+two+one==100并且two>0 && one>0 && five>0 ,然后我们分别 找出三种钱币的组合的公差值分别为+1,-4,+3,由此可编程。
#include <stdio.h>
int main()
{
int five, two, one, n;
scanf("%d", &n);
five = 1;
two = 46;
one = 53;
for (size_t i = 1; i <= n; i++)
{
if (two<1 || one<1 || five<1)
{
return 0;
}
printf("%d %d %d\n", five, two, one);
five++;
two -= 4;
one += 3;
}
return 0;
}

浙公网安备 33010602011771号