题目描述
小明去商店购物,共花费 n 元。小明选择用纸币付款,他有 100 元,50 元,20 元,10 元,5 元,1 元的共 6 种纸币。假设每种纸币的数量都足够多,小明按照 100, 50, 20, 10, 5, 1 元的顺 序,优先支付面额较大的纸币。
请你求解,每种面额的纸币各需要多少张。
输入
输入 1 行 1 个整数n ,表示小明的消费金额。
输出
输出 1 行 6 个整数,依次表示 100, 50, 20, 10, 5, 1 元每种面额的纸币需要的张数,中间用空格隔开。
样例输入
【样例1】 471 【样例2】 68
样例输出
【样例1】 4 1 1 0 0 1 【样例2】 0 1 0 1 1 3
提示
对于50%的数据,0<=n<=1*10^9
对于100%的数据,0<=n<=1*10^18
代码如下:
#include<stdio.h>
int main()
{
long long n, s1, s2, s3, s4, s5, s6;
scanf("%lld", &n);
s1 = n / 100;
s2 = n % 100 / 50;
s3 = n % 100 % 50 / 20;
s4 = n % 100 % 50 % 20 / 10;
s5 = n % 100 % 50 % 20 % 10 / 5;
s6 = n % 100 % 50 % 20 % 10 % 5;
printf("%lld %lld %lld %lld %lld %lld", s1, s2, s3, s4, s5, s6);
return 0;
}