编程点将台(39)

软件世界

  编程点将台:一个编程爱好者学习、动手、交流的天地。注重培养编程思想,强调多种解法。

  多样的参与方式:

  在每期的请战帖里向各路编程好手发出邀请。来信请寄 liz@cpcw.com(请在来信中写明通讯地址和联系方式,不限开发工具和语言),为照顾拿到报纸较晚的读者,我们会在隔一周后再公布结果。

  1.是编程好手?那就去武将堂耍耍刀枪!那里为大家提供完整程序的学习交流。

  2.是理论英雄?那就来文臣殿会会朋友!这里和大家探讨算法和数据结构。

  3.眼界开阔、能力过人?那你就是阿志要找的军师,直接将你好的编程问题连同解法发给阿志(liz@cpcw.com),说不定下期出题的就是你!

  直接的奖励方式:

  将来信中的优秀读者大名公布在点将录中,上榜的文臣、武将的成果还将放在网上供大家学习交流,另外还将获得50元现金奖励。

  请战帖

  国庆期间,因为工作流程的原因,这期就暂不出题。

  点奖录

  第37期武将堂题目回顾:找零钱:将100元钱换成1元、2元、5元的组合(某种钱的数量可以为零),求有多少种换法。

  本期获奖读者:

  郭玲萍 叶小凡 莫湘桥

  这里给出一个比较标准的做法,当然也是最普通的做法,更多的解法请大家下载参考。(http://www.cpcw.com/39/rec.rar)

  program zlq; {程序开始,程序名为zlq}

  var a,b,c,total:integer; {设定a,b,c,total四个变量为整数型}

  begin

  total:=0; {total为可能有的组合数,起初值为0}

  for a:=0 to 100 do {1元数的循环范围是0~100}

  for b:=0 to 50 do {2元数的循环范围是0~50}

  for c:=0 to 20 do {5元数的循环范围是0~20}

  if a +2*b+5*c=100 then {当1元2元5元加起来刚好等于100时,执行begin后的语句}

  begin

  writeln(a:8,b:8,c:8); {输出a,b,c的值}

  total:==total+1; {总的组合数加上1}

  end;

  writeln(‘total=’,total); {最后输出总的组合数}

  end. {结束程序}

  结果:总共为541种。

  本期获奖读者将获得50元现金奖励。更多读者作品在http://www.cpcw.com/39/rec.rar下载。