Конспект лекций по программированию для начинающих. Гладков В.П. - 76 стр.

UptoLike

Составители: 

78
3, b=2). Это решение можно применять начиная с n=10. Если в остатке
получилось два рубля, то нужно забрать одну трешку и выдать одну пятерку
(3+2=5 div 5 =1, a=n div 3-1, b=1). Построим таблицу решений:
n mod 3=0 1
n mod 3=1 1
n mod 3=2 1
a=n div 3, b=0 x
a=n div 3-3, b=2 x
a=n div 3-1, b=1 x
От нее перейдем к программе:
ost:=n mod 3;
chas:=n div 3;
if ost=0
then write('3*',chas,'+5*0=',n)
else if ost=1
then write('3*',chas-3,'+5*2=',n)
else write('3*',chas-1,'+5*1=',n).
Возможен вариант этого решения, когда деньги выдаются пятерками. В
этом случае возможны остатки 0, 1, 2, 3 и 4 рубля. Если в остатке получается
ноль, то (a=0, b=n div 5) все деньги можно выдать пятерками. Если в остатке
получается один, то можно забрать одну пятерку и выдать две трешки (5+1=6
div 3=2, a=2, b=n div 5-1). Если в остатке получается
два, то можно забрать две
пятерки и выдать 4 трешки (2*5+2=12 div 3 =4, a=4, b=n div 5-2). Если в остатке
получается три, то эту тройку можно выдать одной трешкой (a=1, b=n div 5).
Если в остатке получается четыре, то можно забрать одну пятерку и выдать три
трешки (5+4=9 div 3=3, a=3, b=n div 5-1). Построим таблицу решений:
n mod 5=0 1
n mod 5=1 1
n mod 5=2 1
n mod 5=3 1
n mod 5=4 1
a=0, b=n din 5 x
a=2, b=n div 5-1 x
a=4, b=n div 5-2 x
a=1, b=n div 5 x
a=3, b=n div 5-1 x
От нее перейдем к программе:
ost:=n mod 5;
chas:=n div 5;
if ost=0
then write('3*0+5*',chas,'=',n)
else if ost=1
then write('3*2+5*',chas,'=',n)
else if ost=2
                                           78

3, b=2). Это решение можно применять начиная с n=10. Если в остатке
получилось два рубля, то нужно забрать одну трешку и выдать одну пятерку
(3+2=5 div 5 =1, a=n div 3-1, b=1). Построим таблицу решений:
                          n mod 3=0          1
                          n mod 3=1              1
                          n mod 3=2                  1
                          a=n div 3, b=0     x
                          a=n div 3-3, b=2       x
                          a=n div 3-1, b=1           x
    От нее перейдем к программе:
    ost:=n mod 3;
    chas:=n div 3;
    if ost=0
    then write('3*',chas,'+5*0=',n)
    else      if ost=1
              then write('3*',chas-3,'+5*2=',n)
              else write('3*',chas-1,'+5*1=',n).
    Возможен вариант этого решения, когда деньги выдаются пятерками. В
этом случае возможны остатки 0, 1, 2, 3 и 4 рубля. Если в остатке получается
ноль, то (a=0, b=n div 5) все деньги можно выдать пятерками. Если в остатке
получается один, то можно забрать одну пятерку и выдать две трешки (5+1=6
div 3=2, a=2, b=n div 5-1). Если в остатке получается два, то можно забрать две
пятерки и выдать 4 трешки (2*5+2=12 div 3 =4, a=4, b=n div 5-2). Если в остатке
получается три, то эту тройку можно выдать одной трешкой (a=1, b=n div 5).
Если в остатке получается четыре, то можно забрать одну пятерку и выдать три
трешки (5+4=9 div 3=3, a=3, b=n div 5-1). Построим таблицу решений:
                      n mod 5=0           1
                      n mod 5=1                  1
                      n mod 5=2                    1
                      n mod 5=3                      1
                      n mod 5=4                           1
                      a=0, b=n din 5      x
                      a=2, b=n div 5-1           x
                      a=4, b=n div 5-2             x
                      a=1, b=n div 5                 x
                      a=3, b=n div 5-1                    x
   От нее перейдем к программе:
   ost:=n mod 5;
   chas:=n div 5;
   if ost=0
   then write('3*0+5*',chas,'=',n)
   else      if ost=1
             then write('3*2+5*',chas,'=',n)
             else if ost=2