Предмет: Информатика,
автор: enevent
В кассе имеются денежные купюры достоинством в 1,5,10,50,100,500 рублей. Необходимо выплатить сумму n наименьшим кол-вом купюр
Задачу написать на Паскале (используя циклы)
Ответы
Автор ответа:
0
const
c:array[1..6] of integer=(1,5,10,50,100,500);
var
i:byte;
n,d:integer;
k:array[1..6] of integer;
begin
Write('Введите значение суммы: '); Read(n);
for i:=1 to 6 do k[i]:=0;
d:=n; i:=6;
while d>0 do begin
k[i]:=d div c[i];
d:=d mod c[i];
Dec(i)
end;
Write(n,' => ');
for i:=6 downto 1 do
if k[i]>0 then Write(c[i],'x',k[i],' ')
end.
Тестовое решение:
Введите значение суммы: 8947
8947 => 500x17 100x4 10x4 5x1 1x2
c:array[1..6] of integer=(1,5,10,50,100,500);
var
i:byte;
n,d:integer;
k:array[1..6] of integer;
begin
Write('Введите значение суммы: '); Read(n);
for i:=1 to 6 do k[i]:=0;
d:=n; i:=6;
while d>0 do begin
k[i]:=d div c[i];
d:=d mod c[i];
Dec(i)
end;
Write(n,' => ');
for i:=6 downto 1 do
if k[i]>0 then Write(c[i],'x',k[i],' ')
end.
Тестовое решение:
Введите значение суммы: 8947
8947 => 500x17 100x4 10x4 5x1 1x2
Автор ответа:
0
В 6 раз длиннее
Автор ответа:
0
Просто мы не изучали array,downto и все такое. Учитель сразу поймет :(
Автор ответа:
0
Если вы изучали цикл for, то и downto изучали. Это одновременно изучается, отсчет на +1 и на -1
Автор ответа:
0
Это первое. И второе, циклы без массивов в подобных алгоритмах - абсурд.
Автор ответа:
0
Хотите - замените первый массиве на шесть переменных с1, с2, с3, с4, с5, с6 с соответствующим присваиванием, и второй - на k1, k2, .. k6. И расписывайте шесть раз то, что внутри циклов. 6 внутри, 6 снаружи.... итого 36 раз напишете. Смысл есть?
Похожие вопросы
Предмет: Математика,
автор: 101176
Предмет: Русский язык,
автор: lubovnoskova34
Предмет: Биология,
автор: Prisiagaaa
Предмет: Математика,
автор: Emmchka
Предмет: Математика,
автор: vasai1