UVA10696 f91 题解

看到洛谷题解上的大佬找出了这个函数的规律,不过我做这道题的时候并没有想那么多。这题直接按题意写递归函数就能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){//输入n后直接判断是否结束程序
if(n<=100){;//这种比较麻烦的输出用printf比较方便
printf("f91(%d) = %d\n",n,f91(f91(n+11)))//开始递归
}else if(n>=101){
printf("f91(%d) = %d\n",n,n-10);//直接输出n-10
}
}
return 0;
}
```


那么如果配合上[其他大佬](https://www.luogu.com.cn/problem/solution/UVA10696)的结论,我们可以直接把这题变成一道简单的模拟题。

![](https://s1.ax1x.com/2022/06/18/XO5Bkj.png)


那就直接在主函数输出就行了,核心代码如下:
```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);
}

UVA10696 f91 题解
https://www.jollyan.top/uva10696-f91-ti-jie/
作者
梦里徜徉
发布于
2021年7月4日
许可协议