有10元,5元,2元,1元四种面值的人民币,问组成100元钱有多少种组合?
问题分析:  为了表达清楚,用  TEN , FIVE , TWO , ONE , 表示 10元,5元,2元,1元的人民币。
可知 :
0 <= TEN <= 10
0 <= FIVE<= 10
0 <= TWO <= 10
0 <= ONE <= 10
TEN * 10 + FIVE * 5 + TWO * 2 + ONE = 100
有了这些表达式,可以利用穷举法编程,如下:
#include <stdio.h>

int main()
{
int i;
int one;
int two;
int five;
int ten;
int count = 0;
int cou = 0;

    for(ten = 0; ten <= 10; ten++)
{
for(five = 0; five <= 20; five++)
{
for(two = 0; two <= 50; two++)
{
for(one = 0; one <= 100; one++)
{
cou++;
if(ten * 10 + five * 5+ two * 2 + one == 100)
{
count++;
}
}
}
}
}
printf("一共循环了%d次\n",cou);
printf("共有%d组合\n",count);
}
运行结果:
这种算法需要的循环次数为   11 * 21 * 51 * 101 = 1189887 。
因为当 10元,5元,2元的张数确定后,一元的个数也就能确定了,
ONE = 100 - 10 * TEN - 5 * FIVE - 2 * TWO;
这样可以省去最里面的循环,减少计算机运算次数。
优化程序如下:
#include <stdio.h>

int main()
{
int i;
int one;
int two;
int five;
int ten;
int count = 0;
int cou = 0;

    for(ten = 0; ten <= 10; ten++)
{
for(five = 0; five <= 20; five++)
{
for(two = 0; two <= 50; two++)
{
 
      cou++;
one = 100 - (ten * 10 + five * 5 + two * 2);
if((one >= 0) && (ten * 10 + five * 5+ two * 2 + one == 100))
{
count++;
}
}
}
}
printf("一共循环了%d次\n",cou);
printf("共有%d组合\n",count);
}

运行结果:
这样循环次数就减少为 11781 次了。

有10元,5元,2元,1元四种面值的人民币,问组成100元钱有多少种组合?相关推荐

  1. 【C# 练习】最少需要准备多少张人民币,才能在给每个人发工资的时候都不用找零呢,人民币一共有100元、50元、10元、5元、2元和1元六种

    题目: 老板给员工发工资,如果每个员工的工资额都知道, 最少需要准备多少张人民币,才能在给每位员工发工资的时候都不用找零呢? 这里假设每个员工的工资都是正整数,单位元,人民币一共有100元.50元.1 ...

  2. 百钱买百鸡python编程列表推导式_使用循环和列表推导式两种方法求解百钱买百鸡问题。假设大鸡5元一只,中鸡3元一只,小鸡1元三只,现有100元钱想买100只鸡,有多少种买法?...

    [程序题]编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 1/1+1/3+...+1/n [单选题]患者男,67岁.确诊为原发性支气管肺癌,为行手术 ...

  3. python123百钱买百鸡_求解百钱买百鸡问题。假设大鸡 5 元一只,中鸡 3 元一只,小鸡 1 元三只,现有 100 元钱想买 100 只鸡,有多少种买法?截图代码和运行结果_学小易找答案...

    [填空题]表达式 'apple.peach,banana,pear'.find('ppp') 的值为 ________ . [填空题]已知 x = '123' 和 y = '456' ,那么表达式 x ...

  4. 4核处理器_【装机帮扶站】第489期:盘点一波100元以下的4核/6核/8核/10核/12核处理器(2)...

    [前言] 继上一期盘点完50元以内价格包邮的CPU后,我们又搜罗了一波100元以内的高性价比4核/6核/8核/10核甚至12核高性能处理器,确切地说,它们的价格介于50元~100元之间. [① 酷睿2 ...

  5. 计算100元换算成1元、5元、10元零钱有多少种可能?

    #include <stdio.h> int main() {     int i,j,k;     int total = 0;     printf("-----100块钱有 ...

  6. 用100元买100支笔c语言,用C编程!有100块钱,买100支笔,其中钢笔3元,圆珠笔2元,铅笔0.5元,问各买多少支?...

    题目: 用C编程!有100块钱,买100支笔,其中钢笔3元,圆珠笔2元,铅笔0.5元,问各买多少支? 解答: 完整程序如下: main(){ int i3,i2,i05; for (i3=0;i3 猜 ...

  7. 途家网获3亿美元融资,PMCAFF放送100元途家优惠券(途家内部员工专用)

    今天中国领先的度假租赁O2O公司途家网确认,新一轮3亿美元的融资已经到账,公司估计超过10亿美金.PMCAFF 联合 途家向广大产品经理赠送100元优惠券(该券为途家内部员工专用) 途家100元优惠券 ...

  8. 中国联通排名第四,2019年云综合收入220亿元

    云排名分析:中国联通排名第四,2019年云综合收入220亿元. 中国联通在2019年发生了很大变化,一方面央企混改之路走出了自己的特点:一方面中国联通在云计算业务的拓展上也迎来了新的进取.这个方面的表 ...

  9. python 100元去买鸡

    100元去买鸡,公鸡5元,母鸡3元,小鸡三只1元,问用100元整能买多少公鸡,母鸡,小鸡 for x in range(1,20): #range随机数for y in range(1,33):z=1 ...

最新文章

  1. eclipse运行程序时只有run on server
  2. Vue实例的生命周期
  3. C++ vector的初始化、添加、遍历、插入、删除、查找、排序、释放操作
  4. python写文件追加 按行追加_你真的会用python进行文件操作吗
  5. 编写你的第一个Django应用程序
  6. Oracle客户端配置
  7. 用c语言做一个背单词的软件,安利一个超好用且自由度高的背单词app
  8. php大文件去重,详细解说PHP多个进程配合redis的有序集合实现大文件去重
  9. Windows XP/2000/Vista/7/8/8.1/10系统 hosts文件位置及使用
  10. Relocation POJ - 2923(01背包+状压dp)
  11. 高等数学---不定积分的计算---基本积分法
  12. 腾达路由器怎么设置网站服务服务器,腾达(Tenda)-无线路由器如何设置上网?
  13. Mac 拓展屏幕时切换软件窗口停留在Mac 显示器中
  14. c:if标签多条件的逻辑判断
  15. 【Sharding-JDBC】 (五)整合mybatis-plus 解决分布式事务(基于XA)
  16. 跟着NC学作图 | 柱状图新画法 (环状柱状图)
  17. 爬虫期末考试笔记(选择题)
  18. gitbook 快速入门
  19. 小学认识计算机课件ppt课件,小学生认识计算机PPT教育课件.ppt
  20. DevOps是MindSet:工具也好文化也罢,人员才是关键

热门文章

  1. BMC——服务器运维管理利器
  2. 前端-一只会动的猫咪
  3. (转)C# 使用UDP组播实现局域网桌面共享
  4. 水果店做微信小程序有什么作用_分享水果店微信小程序怎么做
  5. CSDN新年锦鲤中奖
  6. 聆听李凯院士的报告----Disruptive Innovation
  7. 不要温柔地走入AMD
  8. openbox 更新桌面_如何为Linux桌面配置Openbox
  9. Kotlin最佳项目实战——欧瑞天气App
  10. 十二星座匹配对象_12星座的对象是哪个星座什么星座最合适