【Cousera】北京大学 | 计算导论与C语言基础习题_08:人民币支付

本文介绍了一个简单的人民币支付算法,该算法能够将任意金额分解为不同面额的人民币组合,以实现最优的大面额纸币使用策略。通过输入一个小于1000的正整数,算法将输出100元、50元、20元、10元、5元、1元各面额的数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

08:人民币支付
总时间限制: 1000ms 内存限制: 65536kB
描述
从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。

输入
一个小于1000的正整数。
输出
输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数
样例输入
735
样例输出
7
0
1
1
1
0
代码

#include "pch.h"
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
	int money = 0;
	cin >> money;
	if (money > 1 && money < 1000)
	{
		int m_100 = 0, m_50 = 0, m_20 = 0, m_10 = 0, m_5 = 0, m_1=0;
		if (money/100!=0)
		{
			m_100 = money / 100;
			money = money- m_100 * 100;
		}
		if (money / 50 != 0)
		{
			m_50 = money / 50;
			money = money - m_50 * 50;
		}
		if (money / 20 != 0)
		{
			m_20 = money / 20;
			money = money - m_20 * 20;
		}
		if (money / 10 != 0)
		{
			m_10 = money / 10;
			money = money - m_10 * 10;
		}
		if (money / 5 != 0)
		{
			m_5 = money / 5;
			money = money - m_5 * 5;
		}
		m_1 = money;
		cout<< m_100<<endl<< m_50 << endl << m_20 << endl << m_10 << endl << m_5 << endl << m_1 ;
	}
	else
	{
		cout << "输入错误";
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值