题目描述
Z国的货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小Y使用1024元的纸币购买了一件价值为N (0 < N \le 1024)N(0<N≤1024)的商品,请问最少他会收到多少硬币?
输入描述:
一行,包含一个数N。
输出描述:
一行,包含一个数,表示最少收到的硬币数。
示例1
输入
200
输出
17
说明
花200,需要找零824块,找12个64元硬币,3个16元硬币,2个4元硬币即可。
备注:
对于100%的数据,N (0 < N \le 1024)N(0<N≤1024)。
#include<stdio.h>
int main()
{
int iSpend;
while (scanf("%diSpend", &iSpend) != EOF)
{
int iTotal = 0;
int iRemain = 1024 - iSpend;
if (iSpend == 1024)
{
printf("%d", 0);
return 0;
}
iTotal += (iRemain / 64);
iTotal += ((iRemain % 64) / 16);
iTotal += ((iRemain % 16) / 4);
iTotal += ((iRemain % 4) / 1);
printf("%d", iTotal);
}
return 0;
}