NOI6183人民币支付题解c++

文章讲述了如何使用C++编程解决一个实际问题,即根据用户输入的金额,计算并输出以100元、50元、20元、10元、5元和1元面额所需的人民币张数,采用贪心算法简化求解过程。
摘要由CSDN通过智能技术生成

题目链接

描述

从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。

输入

一个小于1000的正整数。

输出

输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数

样例输入

735

样例输出

7
0
1
1
1
0

这道题不用考虑那么多,只要逐个算即可

贪心的题

人民币就这面值,不想某些题那么坑

#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,n;
int main(){
	cin>>n;
	a=n/100;n%=100;
	b=n/50;n%=50;
	c=n/20;n%=20;
	d=n/10;n%=10;
	e=n/5;n%=5;	
	cout<<a<<'\n'<<b<<'\n'<<c<<'\n'<<d<<'\n'<<e<<'\n'<<n;
	return 0;
}

当然也可以用循环

#include<bits/stdc++.h>
using namespace std;
int main(){
	int s[6]={100,50,20,10,5,1},i,n;
	cin>>n;
	for(i=0;i<6;i++){
		cout<<n/s[i]<<'\n';
		n%=s[i];
	}
	return 0;
}

  • 19
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值