Рассмотрите следующее описание функции: function f(x: integer): integer; begin if x меньше =10 then f:=1 else f:=f(f(x-1)) end; Каким будет значение f(10)?
Рассмотрите следующее описание функции: function f(x: integer): integer; begin if x<=10 then f:=1 else f:=f(f(x-1)) end; Каким будет значение f(10)?
Ответ(ы) на вопрос:
Гость
При вызове f(10) программа пойдет по ветке if x<=10 then f:=1 и результатом будет 1.
Гость
f(10) = 1
Функция определена так: если x <= 10, то f(x) = 1, иначе f(x) = f(f(x - 1)).
10 <= 10, поэтому f(10) = 1.
Впрочем, f(x) = 1 для всех x. Пусть мы знаем, что f(x) = 1 для всех x из (-∞, n] (изначально n = 10). Рассмотрим число y ∈ (n, n + 1]. По условию f(y) = f(f(y - 1)). y - 1 ≤ n, поэтому f(y - 1) = 1, f(y) = f(1) = 1. По принципу математической индукции получается, что f(x) = 1 для всех x.
Не нашли ответ?
Похожие вопросы