找零钱

来源:互联网 发布:为什么淘宝旺旺点不开 编辑:程序博客网 时间:2024/06/12 01:10

找零钱

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

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

输入

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

输出

输出该面额有几种表示方法。

示例输入

140

示例输出

13

提示

如果我告诉你,这题是用暴力穷举的方法,你能通过吗?^_^

来源

ZJGSU

示例程序

 
#include<stdio.h>  int main()  {  int i,j,n,m,s,k,t,l1,l2,l3,l4,l5,l6,l7;  while(scanf("%d",&n)&&n)  {  k=0;  for(l1=0;l1<=n/100;l1++)  for(l2=0;l2<=(n-l1*100)/50;l2++)  for(l3=0;l3<=(n-l1*100-l2*50)/20;l3++)  for(l4=0;l4<=(n-l1*100-l2*50-l3*20)/10;l4++)  for(l5=0;l5<=(n-l1*100-l2*50-l3*20-l4*10)/5;l5++)  for(l6=0;l6<=(n-l1*100-l2*50-l3*20-l4*10-l5*5)/2;l6++)  for(l7=0;l7<=(n-l1*100-l2*50-l3*20-l4*10-l5*5-l6*2);l7++)  if(l1*100+l2*50+l3*20+l4*10+l5*5+l6*2+l7==n&&l1+l2+l3+l4+l5+l6+l7<=100)  k++;  printf("%d\n",k);  }  }   

0 0