Вася написал такую программу (для удобства код приводится на трех языках программирования):
Python:
x = ?
while x < 98 or x % 9 == 0:
print('*')
x += 3
Pascal:
x := ?;
while (x < 98) or (x mod 9 = 0) do begin
writeln('*');
x := x + 3;
end;
C++:
x = ?;
while (x < 98 or x % 9 == 0){
cout « '*';
x += 3;
}
В результате ее работы было напечатано 30 звездочек. Какое наибольшее число могло быть написано вместо знака вопроса?
Answers & Comments
Давайте точно определим, сколько раз выполнится условие в цикле. Нам нужно ровно 30 звёздочек. Тогда x будет равен как минимум 3 · 30 = 90. А теперь пройдём ещё несколько циклов до тех пор, пока условия не будут выполняться. 90 + 3 = 93 - выполняется, 96 - выполняется, 99 - выполняется (кратно 9), 102 - не выполняется. Вот то самое число - максимальное. Отнимем от него минимальное количество и получим значение начального x:
102 - 90 = 12
Ответ
12