Ксюша и Настя пришли в магазин. Они хотят купить арбуз стоимостью N рублей (N-целое число, большее 7). Но у Ксюши есть только 3-хрублевые монетки, а у Насти - 5-тирублевые. Они хотят купить арбуз, отдав минимальное число монет. Помогите им.
Входные данные: стоимость арбуза, целое число, большее 7.
Выходные данные:
минимальное необходимое количество 3-хрублевых монеток и 5-тирублевых монеток, через пробел.
Другие языки программирования и технологии
Ксюша и Настя пришли в магазин. Они хотят купить арбуз стоимостью N рублей . PascalABC.NET
Даже думать не надо: всегда платит Настя, сколько бы арбуз не стоил. 8 руб сойдет 3+5 и 5+5, все равно монет две.
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
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.
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.
Похожие вопросы
- Как создать компьютерного червя на PascalABC.NET и на других языках программирования или опишите структуру червя.
- PascalABC.NET Графика и анимация простейший уровень, не хочет выполняться процедура, (помогите новичку)
- Хочу задать вопрос по множествам PascalABC.NET
- PascalABC.NET Графика, движение объекта после нажатия клавиши
- чем отличается Delphi 7 от PascalABC.net ???
- pascalabc.net все функцеи Напишите пожалуйста все функции Пример sqrt(x )
- Задача на PascalABC.NET. Помогите с решением, очень прошу!
- Нужна очень задача решеная по паскалю! PascalABC.NET
- Где ошибка в программе PascalABC.net
- Pascal PascalABC net и Turbo Pascal какая между ними разница? Вообщем какая, для написания програм разница большая??