@[Pepig](/user/230808) 可以过啊
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,ans=1919810,cnt;
void dfs(int a,int b,int shang,int an)//0a 1b
{
cnt++;
if(an>=ans)return; //剪枝1
if(a>n||b>n)return; //剪枝2
if(cnt>=25000000)return; //剪枝3
if(a==n||b==n){ans=min(ans,an);return;}
if(shang==0)
dfs(a,a+b,1,an+1),dfs(a+b,b,0,an+1);
else
dfs(a+b,b,0,an+1),dfs(a,a+b,1,an+1);
}
int main()
{
cin>>n;
dfs(1,1,0,0);
cout<<ans<<endl;
return 0;
}
```
by 科学的正方形 @ 2021-11-17 21:08:38
@[科学的正方形](/user/336705)
为什么cnt>=25000000就结束
by mayanze123 @ 2023-12-07 21:27:46