U283330 money题解

该文描述了一个编程题,涉及计算从大面额到小面额取款以获取最少纸币数量的算法。灰太狼试图从森林银行取出私房钱,不希望纸币张数过多。通过依次整除不同面值的纸币(100元,50元,20元,10元,5元,1元),可以计算最少的纸币数。给出的C++代码示例实现了这一逻辑。
摘要由CSDN通过智能技术生成

题目传送门

题目背景

灰太狼背着红太狼在森林银行偷开账户,存了x元的私房钱。

题目描述

灰太狼打算将其全部取出来,已知纸币面值有100元、50元、20元、10元、5元和1元。为了防止被发现,它希望拿到纸币的张数最少,于是,灰太狼向你求救。请你计算出最少的纸币数。

输入格式

第一行一个整数t表示t组测试数据。
对于每组测试数据:
一行一个整数x表示存款数.

输出格式

对于每组测试数据,输出一行一个整数表示最少的纸币数。

说明/提示

对于 100% 的数据,1≤t≤100,0≤x≤1e9。

这道题在输入私房钱时可以直接从100元到1元分别整除,最后的就是最少的纸币数。

由此可得以下代码:

#include<iostream>
using namespace std;
int t,x,ans;
int main(){
	cin>>t;
	for(int i=1;i<=t;i++){
		cin>>x;
		ans=0;
		ans+=x/100; x%=100;
		ans+=x/50; x%=50;
		ans+=x/20; x%=20;
		ans+=x/10; x%=10;
		ans+=x/5; x%=5;
		ans+=x;
		cout<<ans<<endl;
	}
	return 0;
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值