因为限制条件两个人能比赛当且仅当他们赢得局数相差不超过1,设F[x]为冠军赢x盘的时候需要的总人数,那么有这样的递推式:F[x] = F[x-1] + F[x-2].(其中x-1的人和x-2的人打一盘,赢的人是x-1,就可以变成x了)。就是斐波那契数列.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[110];
void init(){
a[0]=1;
a[1]=2;
for(int i=2;;i++){
a[i]=a[i-1]+a[i-2];
if(a[i]>1e18) return;
}
}
int main(){
ll n;
cin>>n;
init();
for(int i=0;;i++){
if(a[i]>n){
cout<<i-1<<endl;
break;
}
}
}