刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

最少纸币数

时间限制:1s

内存限制:128MB

(注:input()括号中不允许添加任何提示语)

小新使用现金购买一些商品,商品总价值w(1≤w≤10000),他有100元、50元、10元、5元和1元的纸币,每种纸币张数足够多。

请编写一段程序,计算并输出要买到这些商品,最少需要的纸币张数。

输入描述:

输入1个正整数w(1≤w≤10000),表示要购买的商品总价值

输出描述:

第一行输出1个正整数,表示最少需要多少张纸币

第二行依次输出5个正整数,数字之间以空格隔开,分别表示100元至1元纸币所需张数


输入样例:

38

输出样例:

7
0 0 3 1 3

使用微信搜索喵呜刷题,轻松应对考试!

答案:

br />```pythonw = int(input())num_100 = w // 100w %= 100num_50 = w // 50w %= 50num_10 = w // 10w %= 10num_5 = w // 5w %= 5num_1 = wprint(num_100 + num_50 + num_10 + num_5 + num_1)print(num_100, num_50, num_10, num_5, num_1)```

解析:

【喵呜刷题小喵解析】

本题要求计算购买商品所需的最少纸币数。根据题目描述,我们有100元、50元、10元、5元和1元的纸币,每种纸币张数足够多。我们可以从面值最大的纸币开始计算,依次使用面额,直到金额减至0。

具体步骤如下:

1. 首先,从最高面额的纸币100元开始计算,每次尽量用100元去支付,直到商品总价减去已支付的部分小于100元,即 w %= 100。

2. 然后,用50元去支付,每次尽量用50元去支付,直到商品总价减去已支付的部分小于50元,即 w %= 50。

3. 接着,用10元去支付,每次尽量用10元去支付,直到商品总价减去已支付的部分小于10元,即 w %= 10。

4. 再用5元去支付,每次尽量用5元去支付,直到商品总价减去已支付的部分小于5元,即 w %= 5。

5. 最后,用1元去支付,直到商品总价减至0。

最后,将每种纸币所需的张数相加,即为最少需要的纸币张数。
创作类型:
原创

本文链接:最少纸币数 时间限制:1s 内存限制:128MB (注:input()括号中不允许添加任何提示语)

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share