顺序结构——人民币兑换

【问题描述】

输入一个人民币的整数值(100以内以元为单位),编程找到用10元、5元、2元、1元表示的总数量的最小组合方式。

【输入形式】

从控制台输入一个整数值,表示以元为单位的人民币币值。

【输出形式】

向控制台输出四个整数(以空格分隔),分别表示兑换成的10元、5元、2元、1元人民币的数量,若没有某个币值,则对应输出0。

【样例1输入】

98

【样例1输出】

9 1 1 1

【样例1说明】

输入为98,表示98元人民币,把其兑换成10元、5元、2元、1元表示的总数量的最小组合方式为:9个10元,1个5元,1个2元,1个1元,故输出:9
1 1 1

【样例2输入】

11

【样例2输出】

1 0 0 1

【样例2说明】

输入为11,表示11元人民币,把其兑换成10元、5元、2元、1元表示的总数量的最小组合方式为:1个10元,1个1元,没有5元和2元,故输出:1 0 0 1

解析:
此题目比较简单,只是涉及简单的运算。
代码

#include<iostream>
using namespace std;
int main()
{
	int m;
	cin>>m;
	cout<<m/10<<" ";
	m%=10;
	cout<<m/5<<" ";
	m%=5;
	cout<<m/2<<" ";
	m%=2;
	cout<<m;
}

但是有人不讲武德,所以我就把涉及后面知识点的几种代码也放上来。

#include<iostream>
using namespace std;
int main()
{
	int m;
	cin>>m;
	for(int i=10;i>=1;i/=2)
	{
		cout<<m/i<<" ";
		m%=i;
	}
}

这套代码就需要一定的观察能力。10 5 2 1,每个数字都是前面一个数字整除2得到的。此外,还可以数组和循环并用。

#include<iostream>
using namespace std;
int main()
{
	int m,a[4]={10,5,2,1};
	cin>>m;
	for(int i=0;i<4;i++)
	{
		cout<<m/a[i]<<" ";
		m%=a[i];
	}
}

当然,要注意数字是从零号元素开始的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值