【YBTOJ】求 f 函数
题目大意:
给出一个函数:
\(f(x)=\left\{\begin{matrix}f(f(x+11))&\quad(x\leq 100)\\ x-10&\quad(x> 100) \end{matrix}\right.\)
求 \(f(n)\)。
正文:
从 \(n\) 的上限开始倒着往前求就行了。但是你会发现其实只要 \(x\leq101\),答案就是 \(91\),所以可以达到 \(O(1)\) 的。
代码:
\(O(n)\):
for (int i = 101; i <= N - 10; i++)
f[i] = i - 10;
for (int i = 100; i >= 1; i--)
f[i] = f[f[i + 11]];
\(O(1)\):
printf ("%d\n", (n <= 101)? 91: (n - 10));