描述
人民币中有以下以“元”为单位的面额:
1元 2元 5元 10元 20元 50元 100元
现在你手上有每种面额的钱币若干张,请计算出最少需要多少张,使得正好总金额为 p。
-
输入
-
每行一个整数 p (0 < p <= 10000),为需要的总金额数。输入以 0 结尾。
输出
-
对每个输入,输出对应的最少张数。
样例输入
-
42
-
3
-
0
样例输出
-
3
-
2
从大到小进行判断,要保证张数最少,尽量保证使用面值大的即可
#include <stdio.h>
int a[7]={1,2,5,10,20,50,100};
main()
{
int n;
int i;
int count;
int flag;
while(1)
{ scanf("%d",&n);
if(n==0)
break;
else
{
count=0;
for(i=6;i>=0;i--)
{
flag=0;
if(n>=a[i])
{
n=n-a[i];
count++;
flag=1;
}
if(n==0)
break;
if(n!=0&&flag==1)
{
i=7;
continue;
}
}
printf("%d\n",count);
}
}
}