Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1413474
  • 博文数量: 241
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2253
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-11 22:27
个人简介

--

文章分类

全部博文(241)

文章存档

2021年(3)

2019年(6)

2018年(1)

2017年(9)

2016年(21)

2015年(50)

2014年(125)

2013年(26)

我的朋友

分类: C/C++

2014-03-20 21:48:48

1、Description

我们知道人民币有1、2、5、10、20、50、100这几种面值。
现在给你n(1≤n≤250)元,让你计算换成用上面这些面额表示且总数不超过100张,共有几种。
比如4元,能用4张1元、2张1元和1张2元、2张2元,三种表示方法。

Input

输入有多组,每组一行,为一个整合n。
输入以0结束。

Output

输出该面额有几种表示方法。
例如:1 --》1   2--》2
2、代码:

点击(此处)折叠或打开

  1. #include<stdio.h>

  2. void main()
  3. {
  4.      int n;
  5.      int a;
  6.      int b;
  7.      int c;
  8.      int d;
  9.      int e;
  10.      int f;
  11.      int g;
  12.      int s;
  13.      while(1)
  14.      {
  15.          s=0;
  16.          scanf("%d",&n);
  17.          if(n==0)
  18.          {
  19.              break;        
  20.          }
  21.          if (n<1 || n>250)
  22.          {
  23.             continue;
  24.          }    
  25.          for(a=0;a<=n/100;a++)
  26.          for(b=0;b<=n/50;b++)
  27.          for(c=0;c<=n/20;c++)
  28.             for(d=0;d<=n/10;d++)
  29.              for(e=0;e<=n/5;e++)
  30.              for(f=0;f<=n/2;f++)
  31.              for(g=0;g<=n;g++)
  32.              {
  33.                     if( (n==a*100+b*50+c*20+d*10+e*5+f*2+g) && (a+b+c+d+e+f+g<=100) )
  34.                     {
  35.                         s++;    
  36.                         break;
  37.                     }

  38.              }
  39.          printf("%d\n",s);
  40.      }
  41. }

阅读(1472) | 评论(0) | 转发(0) |
0

上一篇:OJ-合唱队形

下一篇:OJ-名字的漂亮度

给主人留下些什么吧!~~