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

题目描述

买火车票时经常会碰到找钱问题。售票员手中有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
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)
	{
		if(n-1<0)  break;
		n-=1;
		d++;
	}
	if(d>0) printf("1 yuan:%d\n",d);
} 


#include
using namespace std;
int main()
{
	int n,t;
	while(cin>>n)
	{
	cout<<"change:"<=0)
		{n-=50;t++;}
		else
			break;
	}
	if(t!=0)
	cout<<"50 yuan:"<=0)
		{n-=20;t++;}
		else
			break;
	}
	if(t!=0)
	cout<<"20 yuan:"<=0)
		{n-=10;t++;}
		else
			break;
	}
	if(t!=0)
	cout<<"10 yuan:"<=0)
		{n-=5;t++;}
		else
			break;
	}
	if(t!=0)
	cout<<"5 yuan:"<=0)
		{n-=1;t++;}
		else
			break;
	}
	if(t!=0)
	cout<<"1 yuan:"<

 

你可能感兴趣的:(rwoj-AC)