题意:
有n个人参加比赛,淘汰赛制即输掉比赛就直接退出,同时每次安排PK的两个人参赛场次相差不超过1,求冠军最多能赢多少场
分析:
通过人数不好想,那就通过比赛场数分析:
赢1场:至少需要2个人
赢2场:至少需要3个人
赢3场:至少需要 至少赢2场人数 + 至少赢1场人数
赢4场:至少需要 至少赢3场人数 + 至少赢2场人数
赢5场:至少需要 至少赢4场人数 + 至少赢3场人数
......
赢n场:至少需要 至少赢n-1场人数 + 至少赢n-2场人数
通过枚举场数判断参赛人数是否达到要求
代码:
#include<bits/stdc++.h>
using namespace std;
namespace zzc
{
long long n,ans;
void work()
{
cin>>n;
long long a=1,b=2,c=a+b;
ans=1;
while(c<=n)
{
a=b;
b=c;
c=a+b;
ans++;
}
printf("%lld",ans);
}
}
int main()
{
zzc::work();
return 0;
}