• Покупатель должен заплатить в кассу S руб.У него имеются купюры по 1,5,10,50,100,500,1000 и 10000 руб.Сколько купюр разного достоинства отдаст покупатель,если он начинает платить с самых крупных купюр?
    Это паскаль,нужно через while сделать

Ответы 3

  • нужно с while
    • Автор:

      colby
    • 5 лет назад
    • 0
  • >нельзя использовать mod и div А и не надо, хотя с ними было бы понятнее. type TNominals=(nm1, nm5, nm10, nm50, nm100, nm500, nm1000, nm10000); const NomToNum:array[TNominals] of integer = (1, 5, 10, 50, 100, 500, 1000, 10000); var s,q:integer; j:TNominals; begin readln(s); for j:=High(TNominals) downto Low(TNominals) do begin q:=trunc(s/NomToNum[j]); writeln(NomToNum[j],':',q); s:=s-q*NomToNum[j]; end;
    • Автор:

      church
    • 5 лет назад
    • 0
  • Решение, что называется, "в лоб" (далеко, очень далеко, не самое лучшее):var s,k1,k5,k10,k50,k100,k500,k1000,k10000:integer;beginwrite('s = '); readln(s);k1:=0; k5:=0; k10:=0; k50:=0; k100:=0; k500:=0; k1000:=0; k10000:=0;while s>=10000 do begin s:=s-10000; k10000:=k10000+1; end;while s>=1000 do begin s:=s-1000; k1000:=k1000+1; end;while s>=500 do begin s:=s-500; k500:=k500+1; end;while s>=100 do begin s:=s-100; k100:=k100+1; end;while s>=50 do begin s:=s-50; k50:=k50+1; end;while s>=10 do begin s:=s-10; k10:=k10+1; end;while s>=5 do begin s:=s-5; k5:=k5+1; end;while s>=1 do begin s:=s-1; k1:=k1+1; end;writeln('k10000=',k10000,' k1000=',k1000,' k500=',k500,' k100=',k100,' k50=',k50,' k10=',k10,' k5=',k5,' k1=',k1);writeln(' Всего купюр = ',k1+k5+k10+k50+k100+k500+k1000+k10000);end.Пример:s = 27879k10000=2 k1000=7 k500=1 k100=3 k50=1 k10=2 k5=1 k1=4 Всего купюр = 21
    • Автор:

      eloise
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years