10696. f91

 

Вычислить значение функции f91, заданной рекуррентным соотношением:

f91(n) =

 

Вход. Каждая входная строка содержит натуральное число n (n £ 1000000). Число n = 0 является концом входных данных и не обрабатывается.

 

Выход. Для каждого входного n вывести значение f91(n) как показано в примере ниже.

 

Пример входа

500
91
0

 

Пример выхода

f91(500) = 490
f91(91) = 91

 

 

РЕШЕНИЕ

рекуррентное соотношение

 

Анализ алгоритма

Необходимо вычислить значения функции f91(n) для n £ 100.

Имеем: f91(100) = f91(f91(111)) = f91(101) = 91, f91(99) = f91(f91(110)) = f91(100) = 91. Аналогично продолжая, можно заметить что f91(n) = 91, где 1 £ n £ 100.

Таким образом, имеет место соотношение:

f91(n) =

 

Реализация алгоритма

Читаем входные значения n, пока не встретится 0. Выводим результат согласно приведенному выше соотношению.

 

while(scanf("%d",&n), n != 0)

{

  if (n >= 101) res = n - 10; else res = 91;

  printf("f91(%d) = %d\n",n,res);

}