0
|
Задача 438. Округленный квадратный кореньпостоянный адрес задачи: http://www.diofant.ru/problem/2036/показать код для вставки на свой сайт >> |
Задачу решили:
2
всего попыток:
3
поделиться задачей:
|
|
Округлим квадратный корень из натурального числа n до ближайшего целого и будем называть полученный результат округленным квадратным корнем.
Теперь рассмотрим следующий алгоритм вычисления округленного квадратного корня, фактически являющийся модификацией формулы Герона для целочисленной арифметики:
Пусть d — количество знаков числа n,
x0 = 2?10(d-1)⁄2 для нечетных d, и
x0 = 7?10(d-2)⁄2 для четных d.
Будем вычислять последовательность xk
xk+1=[(xk+{n/xk})/2]
до тех пор, пока последовательные значения не совпадут: xk+1 = xk. Скобки [] - означают округление вниз, а {} - округление вверх.
Для примера вычислим округленный квадратный корень из 4321. Это четырехзначное число, поэтому x0 = 7 ? 10(4-2)⁄2 = 70.
x1=[(70+{4321/70})/2]=66
x2=[(66+{4321/66})/2]=66
Поскольку x2 = x1, двух итераций оказалось достаточно, и мы нашли округленный квадратный корень, равный 66 (это правильный результат, поскольку квадратный корень из 4321 примерно равен 65,7343137…)
Описанный метод оказался удивительно эффективным. Например, для вычисления округленных квадратных корней из пятизначных чисел требуется не более 5 итераций. Существует всего 82 пятизначных числа (например, число 10097), для которых алгоритм требует пяти шагов.
Найдите максимальное число итераций, которое может потребоваться для вычисления округленного квадратного корня из 14-значного числа. В качестве ответа укажите количество 14-значных чисел, для вычисления округленного квадратного корня из которых требуется найденное максимальное число шагов.
Если Вы не можете ее решить, значит Вы не можете ее решить :-)