资源简介
这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑 15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。
你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。
代码片段和文件信息
#include
#include
void main()
{
FILE *fp;
int num=0money[100];
int n=0icount;
for(i=0;i<100;i++)
money[i]=0;
if((fp=fopen(“qianbi.in““r“))==NULL)
{
printf(“Can not read file!\n“);
return;
}
while(fscanf(fp“%d“&num)&&num!=0)
{
fscanf(fp“%d“&n);
for(i=0;i {
fscanf(fp“%d“&money[i]);
}
count=0;
i=n-1;
while(1)
{
if(num i--;
else
{
num=num-money[i];
count++;
}
if(num==0||i<0)
break;
}
if(num==0)
printf(“%d\n“count);
else printf(“Imposible\n“);
}
fclose(fp);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 172079 2012-04-22 02:58 qianbi\Debug\qianbi.exe
文件 187088 2012-04-22 02:58 qianbi\Debug\qianbi.ilk
文件 3559 2012-04-22 02:58 qianbi\Debug\qianbi.obj
文件 220236 2012-04-22 02:33 qianbi\Debug\qianbi.pch
文件 443392 2012-04-22 02:58 qianbi\Debug\qianbi.pdb
文件 33792 2012-04-22 02:58 qianbi\Debug\vc60.idb
文件 53248 2012-04-22 02:58 qianbi\Debug\vc60.pdb
文件 639 2012-04-22 02:59 qianbi\qianbi.cpp
文件 3401 2012-04-22 02:33 qianbi\qianbi.dsp
文件 535 2012-04-22 03:08 qianbi\qianbi.dsw
文件 33 2012-04-22 02:09 qianbi\qianbi.in
文件 33792 2012-04-22 03:08 qianbi\qianbi.ncb
文件 48640 2012-04-22 03:08 qianbi\qianbi.opt
文件 1117 2012-04-22 02:58 qianbi\qianbi.plg
目录 0 2012-04-22 02:58 qianbi\Debug
目录 0 2012-04-22 03:08 qianbi
----------- --------- ---------- ----- ----
1201551 16
评论
共有 条评论