Помогите подалуйста решить задачку на Циклы!
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
Покупатель должен заплатить в кассу S р. У него имеются 1, 5, 10, 50, 100, 500, 1000р. Сколько купюр разного достоинства отдаст покупатель, если он начинает платить с самых крупных купюр? Люди добрые спасите))
-
- Сообщения: 6
- Зарегистрирован: 08 дек 2009, 03:24
- Откуда: г. Зеленоград
- Контактная информация:
Код: Выделить всё
int i;
int sum = 1000;
for (i = 1; i <=7; i++) {
if (sum >= S)
break;
if (i % 2)
sum /= 2;
else
sum /= 5;
}
После выхода из цикла в переменной i будет количество купюр, которое необходимо заплатить.
Не забудьте оставить положительный отзыв, если решение подходит.
И что этот код делает? Если ввести S=10000, то он вернет 7, хотя не должен бы.
Вариант на Паскале.
Вариант на Паскале.
Код: Выделить всё
var s, sum, counter: integer; s5: boolean;
begin
counter:=0; s5:=false; sum:=1000;
s:=12345;
while s>0 do
begin
while s>=sum do
begin
dec(s,sum); inc(counter);
end;
while s<sum do
begin
if s5 then sum:=sum div 5 else sum:=sum div 2; s5:=not s5;
end;
end;
writeln(counter);
end.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.