Написать какую угодно (добрый совет: рекурсивную) функцию, unsigned long sudan(int n, unsigned long int x, unsigned long y), вычисляющую следующее рекуррентное соотношение
$$ F_0 (x, y) = x+y $$
$$ F_{n+1} (x, 0) = x$$, если $$ n⩾0 $$
$$ F_{n+1} (x, y+1) = F_n (F_{n+1} (x, y), F_{n+1} (x, y) + y + 1)$$, если $$ n⩾0 $$
Функция растёт очень быстро, так что в тестах n, x, и y будут достаточно малы, чтобы не вызывать переполнения unsigned long и исчерпания стека вызовов. Тестовая программа может выглядеть так:
int main(void) { int n, x, y; while(scanf("%d%d%d", &n, &x, &y)>0) printf("%lu\n", sudan(n, x, y)); return 0; }
0 0 0 1 4 1 1 2 4 2 1 2 1 1 10 2 2 2
0 9 58 10228 3060 15569256417
