题意
你有1-n的n条边,让你拿走尽量少的边,使得剩下的边,任意取三个都不能组成三角形。
解题思路
既然让剩下的边不能组成三角形,那就让剩下的边构成斐波那契数列
代码如下
#include<iostream>
using namespace std;
int f[25];
void Fib()
{
f[1]=1;
f[2]=2;
for(int i=3;i<=20;i++)
f[i]=f[i-1]+f[i-2];
}
int main()
{
int t,n;
int ans=0,i,k=0;
Fib();
cin>>t;
while(t--)
{
k++;
cout<<"Case #"<<k<<": ";
ans=0;
cin>>n;
for(i=1;i<=20;i++)
{
if(f[i]<=n)
ans++;
}
cout<<n-ans<<endl;
}
return 0;
}