2020-11-22上机实践之穷举——换硬币

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、小结

对照老师提供的答案后,我学到了一个小技巧:对于这种输出量较大的题目,输出时可以采用分步输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值