суббота, 2 апреля 2016 г.

Значения чисел a и b

Задача.
Ниже на пяти языках записан алгоритм, который получает на вход число x и печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм сначала печатает 3, а потом 5.

Решение.
1) Сначала а = 0, а после выполнения алгоритма а = 3, значит цикл в алгоритме должен быть выполнен 3 раза (а увеличивается на 1 каждый раз), при этом значения b = 1  должно измениться и стать b = 5.
Изменение b происходит в результате умножения предыдущего значения b на множитель (х mod 10). Следовательно, b = 5 можно достичь несколькими способами:
1 * 1 * 1 * 5 = 5
1 * 1 * 5 * 1 = 5
1 * 5 * 1 * 1 = 5
2) Рассмотрим выполнение алгоритма для х = 115, 151, 511.
х
x mod 10
1-й цикл
x mod 10
2-й цикл
x mod 10
3-й цикл
115
5
а = 1
b = 1 * 5 = 5
x = 115 div 10 = 11
1
а = 2
b = 5 * 1 = 5
x = 11 div 10 = 1
1
а = 3
b = 5 * 1 = 5
x = 1 div 10 = 0
151
1
а = 1
b = 1 * 1 = 1
x = 151 div 10 = 15
5
а = 2
b = 1 * 5 = 5
x = 15 div 10 = 1
1
а = 3
b = 5 * 1 = 5
x = 1 div 10 = 0
511
1
а = 1
b = 1 * 1 = 1
x = 511 div 10 = 51
1
а = 2
b = 1 * 1 = 1
x = 51 div 10 = 5
5
а = 3
b = 1 * 5 = 5
x = 5 div 10 = 0
При х = 0 выполнение цикла прекращается.
Наибольшим среди 115, 151, 511 является 511.

Ответ: 511.

Ресурсы:






Комментариев нет:

Отправить комментарий