C/C++ 算法分析与设计:贪心(找钱问题)

这篇博客探讨了在买火车票时遇到的找零钱问题,如何通过贪心算法确保找回的零钱张数最少。作者使用C/C++语言,针对不同面额的钱币(50、20、10、5、1元)进行分析,旨在优化找零流程。博客包含题目描述、输入输出格式说明以及样例数据。
摘要由CSDN通过智能技术生成

题目描述

买火车票时经常会碰到找钱问题。售票员手中有50、20、10、5、1元的钱币,你知道怎么找钱才能使找回的零钱张数最少吗?

输入

多组测试数据,输入需要找钱的钱数

输出

对每组测试数据按下面格式输出: 
第一行输出"change:",然后是你要找的钱 
以下几行按面值从大到小输出要找的张数,格式如下:50 yuan: 1,如果1张也没有就不需要输出

样例输入

76

样例输出

change:76
50 yuan:1
20 yuan:1
5 yuan:1
1 yuan:1
#include<stdio.h>
int main()
{
	int n,a=0,b=0,c=0,d=0,e=0,i;
	scanf("%d",&n);
	printf("change:%d\n",n);
	while(1)
	{
		if(n-50<0)  break;
		n-=50;
		a++;
	}
	if(a>0) printf("50 yuan:%d\n",a);
	while(1)
	{
		if(n-20<0)  break;
		n-=20;
		b++;
	}
	if(b>0) printf("20 yuan:%d\n",b);
	while(1)
	{
		if(n-5<0)  break;
		n-=5;
		c++;
	}
	if(c>0) printf("5 yuan:%d\n",c);
	while(1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值