鱼C论坛

 找回密码
 立即注册
查看: 2400|回复: 0

[技术交流] 硬币方案

[复制链接]
发表于 2021-3-16 13:29:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题描述

有 50 枚硬币,可能包括 4 种类型:1 元、5 角、1 角和 5 分。

已知 50 枚硬币的总价值为 20 元,求各种硬币的数量。

例如:2、34、6、8 就是一种方案。而 2、33、15、0 是另一个可能的方案,显然方案不唯一。

编写程序求出类似这样的不同的方案一共有多少种?

输入数据



输出要求

所有可能的方案,输出格式见输出样例。

输入样例

无输入

输出样例

1: 0 , 38 , 8 , 4

2: 1 , 36 , 7 , 6

3: 2 , 33 , 15 , 0

……
分析:
直接对四种类型的硬币的个数进行穷举。其中,1 元最多 20 枚、5 角最多 40 枚、1 角最多 50 枚、5 分最多 50 枚。

        另外,如果以元为单位,则 5 角、1 角、5 分会化成浮点型数据,容易计算出错。可以将 1 元、5 角、1 角、5 分变成 100 分、50 分、10 分和 5 分,从而全部采用整型数据处理。
代码:
#include <stdio.h>
int main()
{
    int a,b,c,d,cnt=0;
    for(a=0;a<=20;a++)
     for(b=0;b<=40;b++)
      for(c=0;c<=50;c++)
       for(d=0;d<=50;d++)
       {
                     if(a*100+b*50+c*10+d*5==2000 && a+b+c+d==50)
                     {
                            printf("%d: %d , %d , %d , %d\n",++cnt,a,b,c,d);
                     }
        }
    return 0;
} 

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 05:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表