人民币兑换

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;
}

posted @ 2022-10-08 15:18  蠢蛋快跑  阅读(600)  评论(0)    收藏  举报