看到洛谷题解上的大佬找出了这个函数的规律,不过我做这道题的时候并没有想那么多。这题直接按题意写递归函数就能AC。
注意:若本文Latex公式显示不正常,请移步我的洛谷博客阅读。
观察题目,你可以直接得出以下结论:
题面要求的输出比较麻烦,所以我使用printf
。同时,如果这个数输入的时候就已经是
\(n-10\) 了,那么我就直接输出 \(n-10\) 就好了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; int f91(int x){ if(x<=100) return f91(f91(x+11)); return x-10; } int main(){ int n; while(cin>>n&&n!=0){ if(n<=100){; printf("f91(%d) = %d\n",n,f91(f91(n+11))) }else if(n>=101){ printf("f91(%d) = %d\n",n,n-10); } } return 0; } ```
那么如果配合上[其他大佬](https:
![](https: 那就直接在主函数输出就行了,核心代码如下: ```cpp while(cin>>n&&n!=0){ if(n<=100) printf("f91(%d) = 91\n",n); else if(n>=101) printf("f91(%d) = %d\n",n,n-10); }
|