题目描述

现在假设你是个店员,为了方便/准确/最优的找零钱,你设计了一个程序.该程序应该实现如下功能: 第一行输入客户所给你金额 第二行输入客户消费的总金额 第三行输出应找的总零钱是多少 第四行输出各种面额的张数(总金额之和要与第三行的数相等,并且要求货币总张数是最少的方案输出) 注:为了简单,假设上述中的金额都是整数,现规定金额的面值为100,50,20,10,5,1元.并且假定客户的金额总是大于所需支付的总金额.数据类型有int整数表示.

输入

多组数据,
第一行输入一个整数(表示客户所付的金额),如100
第二行输入一个整数(表示商品的总计金额),如25

输出

第一行输出 应找的零钱,如75
第二行输出 金额面值1*张数1+金额面值2+张数2+....+金额面值N*张数N=零钱数。(面值较大的零钱优先排在前面,如50元比20元大,应排在前面)

样例输入

100
25
95
2

样例输出

75
50*1+20*1+5*1=75
93
50*1+20*2+1*3=93
#include<stdio.h>
int main()
{
	int m, n;
	int a[6] = { 100,50,20,10,5,1 };
	int count,num,tmp;
	int i;
	while (scanf("%d%d", &m, &n) != EOF)
	{
		count = m - n;
		i = 0;
		num = 0;
		tmp = count;
		printf("%d\n", tmp);
		while (1)
		{
			num = count / a[i];
			count = count % a[i];
			if (num > 0)
			{
				if (count == 0)
				{
					printf("%d*%d=%d\n",a[i],num,tmp);
					break;
				}
				else
				{
					printf("%d*%d+", a[i],num);
				}
			}
			i++;
		}
	}
	return 0;
}

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐