Рассмотрите следующее описание функции: function f(x: integer): integer; begin if x<=10...

0 голосов
184 просмотров

Рассмотрите следующее описание функции: function f(x: integer): integer; begin if x<=10 then f:=1 else f:=f(f(x-1)) end; Каким будет значение f(10)?


Информатика (44 баллов) | 184 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

F(10) = 1

Функция определена так: если x <= 10, то f(x) = 1, иначе f(x) = f(f(x - 1)).<br>10 <= 10, поэтому f(10) = 1.<br>
Впрочем, 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.

(148k баллов)
0 голосов

При вызове f(10) программа пойдет по ветке if x<=10 then f:=1 и результатом будет 1.</span>

(150k баллов)