Другие языки программирования и технологии

Ксюша и Настя пришли в магазин. Они хотят купить арбуз стоимостью N рублей . PascalABC.NET

Ксюша и Настя пришли в магазин. Они хотят купить арбуз стоимостью N рублей (N-целое число, большее 7). Но у Ксюши есть только 3-хрублевые монетки, а у Насти - 5-тирублевые. Они хотят купить арбуз, отдав минимальное число монет. Помогите им.
Входные данные: стоимость арбуза, целое число, большее 7.
Выходные данные:
минимальное необходимое количество 3-хрублевых монеток и 5-тирублевых монеток, через пробел.
Даже думать не надо: всегда платит Настя, сколько бы арбуз не стоил. 8 руб сойдет 3+5 и 5+5, все равно монет две.
Мамат Имаралиевич
Мамат Имаралиевич
27 070
Лучший ответ
readln(n);
i := n div 5;
while (n - i * 5) mod 3 <> 0 do dec(i);
writeln((n - i * 5) div 3, ' ', i)

Или в лоб:

case n mod 5 of
0: writeln(0, ' ', n div 5);
1: writeln(2, ' ', n div 5 - 1);
2: writeln(4, ' ', n div 5 - 2);
3: writeln(1, ' ', n div 5);
4: writeln(3, ' ', n div 5 - 1)
end
begin
for var s := 8 to 100 do begin
print('Сумма покупки:', s, '=');
if s mod 5 = 0 then begin println(s div 5, 'пятаков'); continue; end;
if s mod 3 = 0 then begin println(s div 3, 'алтынов'); continue; end;
if (s - (s div 5) * 5) mod 3 = 0 then begin
println(s div 5, 'пятаков', s mod 5 div 3, 'алтынов');
continue; end;
if (s - (s div 5 - 1) * 5) mod 3 = 0 then begin
println(s div 5 - 1, 'пятаков', (s - (s div 5 - 1) * 5) div 3, 'алтынов');
continue; end;
if (s - (s div 5 - 2) * 5) mod 3 = 0 then begin
println(s div 5 - 2, 'пятаков', (s - (s div 5 - 2) * 5) div 3, 'алтынов');
continue; end;
end;
end.
VN
Vadim Nazarov
18 091