您的位置:首页 > 产品设计 > UI/UE

2、贪婪算法例子 parvalue(找零钱)

2016-03-22 23:36 357 查看
#include <stdio.h>

#define MAXN 9

int parvalue[MAXN+1]={10000,5000,2000,1000,500,200,100,50,20,10};//定义人民币面额数值

int num[MAXN]={0};//定义找零钱的数额

int exchange(int n)

{

int i;

for(i=0;i<MAXN;i++)

{

if(n>parvalue[i])break;//找到比n小的面额对应i

}

while(n>0 && i<MAXN)

{

if(n>=parvalue[i])

{

n-=parvalue[i];

num[i]++;

}else if(n<=10 && n>=5)

{

num[MAXN]++;

break;

}else i++;

}

return 0;

}

int main()

{

int i;

float m;

printf("请输入找零的金额:");

scanf("%f",&m);

exchange((int)100*m);

printf("\n%.2f元零钱的组成:\n",m);

for(i=0;i<=MAXN;i++)

if(num[i]>0)

printf("%6.2f:%d张\n",(float)parvalue[i]/100,num[i]);

getch();

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: