大榕树——让我们共成长!
大榕树 myDrs.org
您的位置:大榕树 \ 编程       |  Logo语言   |  Pascal语言   |  信息学奥赛   |  高考保送    |  HTML版本
|  信息学奥赛>>网上竞赛>>《硬币找零》参考程序         本站全文搜索: 友情提示:

《硬币找零》参考程序
http://www.mydrs.org  10/10/2002  大榕树


第四题  硬币找零。 (30分)
    在现实生活中,我们经常遇到硬币找零的问题。人民币的硬币系统是100,60,20,10,5,2,1,0.5,0.2,0.1,0.05,0.01元,采用这些硬币我们可以对任何一个款项用贪心算法求出其最少的硬币。
   但是不幸的是,我们没有这么好的硬币系统。比如说硬币系统是40,30,25元,那么37元就不能找零;95最少找零数是3。又如,硬币系统是10,7,5,1元,那么12元用贪心算法找得的硬币数是3,而最少硬币数是2。
   你的任务是,对于给定的硬币系统(共n中硬币,1<=n<=5000)和一个金钱数 t (1<=t<=30000,找出最少的找零硬币数;如果不能用这些硬币找零,则给出一种找零方法,使剩下的钱最少。

    输入:n  t    (input4.txt)
                   硬币系统里的n种硬币的面值
    输出:如果 t 能被硬币系统中的硬币找零,请输出最少的找零硬币数。
           如果 t 不能被找零,请输出剩下的钱最少的找零方案中的最少硬币数。

    例如: 输入 4 12
                10 7 5 1
           输出 2

           输入 3 39
                30 20 10
           输出 1

           输入 3 80
                300 200 100
           输出 0

------------------------------------------------------------FOI&BBOI2  2002.10-----

以下是范例程序代码:


program foi_t4;

{
    FOI&BBOI2 Friendship
      OI Test 2002.10

    T4:The Coin Problem
    Write by Fruit Ikari

    E-mail: fruithms@sina.com
    OICQ  : 337972
}


{$S-,Y-,R-,Q-,I-}
{$M 65520,0,655360}
const
   inputfilename='input4.txt';
   outputfilename='output4.txt';
   maxn=5000;
   maxt=30000;
   maxcoin=maxt+1;
var
   coin:array [1..maxn] of word;
   n,t,answer:integer;
   testfile:text;

procedure init;
var
 i:integer;
begin
   assign(testfile,inputfilename); reset(testfile);
   readln(testfile,n,t);
   for i:=1 to n do read(testfile,coin[i]);
   close(testfile);
end;

procedure main;
var
   f:array [0..maxt] of integer;
   temp,i,j,max:integer;
begin
  for i:=1 to t do f[i]:=maxcoin;
  f[0]:=0;
  for i:=1 to t do
  begin
    max:=maxcoin;
    for j:=1 to n do
      if coin[j]<=i then
       begin
         temp:=f[i-coin[j]]+1;
         if temp<max then max:=temp;
       end;
      f[i]:=max;
  end;
 i:=t;
 while f[i]=maxcoin do dec(i);
 answer:=f[i];
end;

procedure show;
begin
  assign(testfile,outputfilename);
  rewrite(testfile);
  writeln(testfile,answer);
  close(testfile);
end;

begin
  init;
  main;
  show;
end.


作 者:Fruit
共有3482位读者阅读过此文

  • 上篇文章FOI&BBOI-2结果公布
  • 下篇文章《神奇国度》参考程序

  • 发送邮件
    保存页面 打印文章 HTML版本 发表评论

    □- 近期热门文章 □- 相关文章
    1. NOIP2006竞赛大纲 [8307]
    2. 七类高中生具有保送资格 [5911]
    3. NOI2006获奖选手名单 [4956]
    4. 关于举办NOIP2006模拟赛的通告 [4107]
    5. Turbo Pascal各语句运行速... [3595]
    6. Turbo王者归来新Delphi免费... [3182]
    7. IOI2006我国4名选手全部获得金... [2946]
    8. 关于APIO2007与IOI2007... [2764]
    9. noip倒计时 by 枯叶蝴蝶 [2684]
    10. 朱泽园:思想上的金牌更重要 [2169]
    6月28日PHOI友谊赛[更新]
    FruitOI-3 Html试题
    FruitOI3试题下载(doc)
    FruitOI-3友谊赛通知
    《神奇国度》参考程序
    《硬币找零》参考程序
    FOI&BBOI-2结果公布
    FOI&BBOI-2提交页面
    BBOI-2全部试题Word文档
    BBOI-2第四题《硬币找零》
     

    关于本站 | 合作伙伴 | 联系方式
    大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号