任务描述
本关任务:设计一个贪婪算法,使得找的钱币张数最少。
商店售货员找给 1 个顾客 n 元,用以下七种面值的纸币:100 元,50 元,20 元,10 元,5 元,2 元,1 元。
思考:如果商店售货员找给 1 个顾客 140 元,假设钱币的面值有九种:100 元,70 元,50 元,20 元,10 元,7 元,5 元,2 元,1 元。用贪婪算法得到的是该问题的最优解吗?
编程要求
请在右侧编辑器Begin-End处补充代码,完成本关任务,注意需要学生自己获取找的钱 n。
#include <stdio.h>
void main()
{
/********** Begin **********/
int j,GZ,A,B[8]={0,100,50,20,10,5,2,1},S[8]={0,0,0,0,0,0,0,0};
scanf("%d",&GZ);
for(j=1;j<=7;j++)
{
A=GZ/B[j];
S[j] = A;
GZ = GZ - A*B[j];
printf("%d元 %d张\n",B[j],A);
}
/********** End **********/
}