|| 返回 || 本站首页 ||奥赛信息||计算机基础||pascal基础||数据结构||经典算法||试题汇编||校本教程||自主练习||

|| 自主练习>> 钞票换硬币、百钱买百鸡、分书问题

双击自动滚屏 

   

钞票换硬币

【题目】把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些种换法?

【答案】461种

【参考程序】

        var i,j,k,total:integer;

        begin

             total:=0;   {总数设为0}

             for i:=1 to 99 do            {i:二分硬币最多99枚}

                 for j:=1 to 49 do        {j:二分硬币最多49枚}

                     for k:=1 to 19 do    {k:五分硬币最多19枚}

                         if i*1+j*2+k*5=100 then begin

                            writeln(i:3,j:3,k:3);

                            inc(total);     {总数加1}

                         end;

                         writeln(total);

                         readln;

        end.

 

百钱买百鸡

【题目】一只公鸡值5元,一只母鸡值3元,3只小鸡值1元,现用一百元要买一百只鸡,

        问有什么方案?

【答案】四种方案:

            公鸡   母鸡    小鸡

               25    75

               18    78

               11    81

         ④ 12         84

【参考程序】

 

分书问题

【题目】有A、B、C、D、E五本书,要分给张、王、刘、┏━┯━┯━┯━┯━┯━┓

        赵、钱五位同学,每人只能选一本, 事先让每人把自 ┃  │A│B│C│D│E┃

        己喜爱的书法填于右表,编程找出让每人都满意的方 ┠─┼─┼─┼─┼─┼─┨

        案。                                          ┃张│    │√│√│ 

                                                      ┠─┼─┼─┼─┼─┼─┨

【答案】四种方案                                      ┃王│√│√│    │√┃

                                            ┠─┼─┼─┼─┼─┼─┨

       ① C                                  ┃刘│  │√│√│   

       ② D                                  ┠─┼─┼─┼─┼─┼─┨

       ③ D                                  ┃赵│√│√│  │√│ 

       ④ D                                  ┠─┼─┼─┼─┼─┼─┨

                                                      ┃钱│  │√│    │√┃

                                                      ┗━┷━┷━┷━┷━┷━┛

【参考程序】

        var z,w,l,zh,q,total:byte;

        procedure output;

        begin

             writeln('zhang:',chr(z+64));

             writeln('wang:',chr(w+64));

             writeln('liu :',chr(l+64));

             writeln('zhao:',chr(zh+64));

             writeln('qian:',chr(q+64));

             writeln;

             inc(total);

        end;

 

        begin

             total:=0;

             for z:=3 to 4 do

                      for w:=1 to 5 do

                          if (w<>3) and (w<>4) then

                             for l:=2 to 3 do

                                 for zh:=1 to 4 do

                                     if zh<>3 then

                                       for q:=2 to 5 do

                                         if (q<>3) and (q<>4) then begin

                                            if z+w+l+zh+q=15 then

                                               if z*w*l*zh*q=120 then output;

                                         end;

             write(total);

        end.


 
 

 

 
 
 

制作与维护:重庆市忠县中学 谭海