Страница 1 из 1
Помогите подалуйста решить задачку на Циклы!
Добавлено: 07 дек 2009, 19:50
RiBi7
Покупатель должен заплатить в кассу S р. У него имеются 1, 5, 10, 50, 100, 500, 1000р. Сколько купюр разного достоинства отдаст покупатель, если он начинает платить с самых крупных купюр? Люди добрые спасите))
Re: Помогите подалуйста решить задачку на Циклы!
Добавлено: 08 дек 2009, 04:32
savigm
Код: Выделить всё
int i;
int sum = 1000;
for (i = 1; i <=7; i++) {
if (sum >= S)
break;
if (i % 2)
sum /= 2;
else
sum /= 5;
}
Код написан на Си.
После выхода из цикла в переменной i будет количество купюр, которое необходимо заплатить.
Не забудьте оставить положительный отзыв, если решение подходит.
Re: Помогите подалуйста решить задачку на Циклы!
Добавлено: 08 дек 2009, 11:00
Хыиуду
И что этот код делает? Если ввести 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.
Re: Помогите подалуйста решить задачку на Циклы!
Добавлено: 08 дек 2009, 19:26
savigm
А-а-а, я подумал что у покупателя по одной купюре и сумма не больше 1666р.
Тогда задача интересней, позже выложу свой вариант на Си.