题解 CF791A 【Bear and Big Brother】
rui_er
2019-04-02 16:23:21
这一题是一个模拟算法。
我采用递归的方式解题。
# 头文件
没有什么特殊的。
```cpp
#include <iostream>
```
# 主函数
> 在主函数中只需要以下几件事:
1. 输入
2. 跑一遍递归函数
3. 输出
```cpp
int main()
{
int a, b;
cin>>a>>b;
cout<<f(a, b)<<endl;
return 0;
}
```
可见递归函数是程序重点。
# 递归函数
首先,声明函数,一定要在main前面!!!```int f(int a, int b);```
其次,在后面写函数。
- 如果已经满足条件(第一个数比第二个数大),则return 0。
- 否则次数加1,模拟下一年。这里次数就是返回值。
```cpp
int f(int a, int b)
{
if(a > b) return 0;
else return 1 + f(3*a, 2*b);
}
```
# 汇总
最后,把前面所有的合起来,得到:
```cpp
#include <iostream>
using namespace std;
int f(int a, int b);
int main()
{
int a, b;
cin>>a>>b;
cout<<f(a, b)<<endl;
return 0;
}
int f(int a, int b)
{
if(a > b) return 0;
else return 1 + f(3*a, 2*b);
}
```