water,给一个数n,问从1...n的数字里最少删去多少数字让剩下的数字必不可能组成三角形。
保留的数字必定是1、2、3、5、8、13、21.....这样的数字。
//#define test #include<bits/stdc++.h> using namespace std; const int Nmax=1e6+7; typedef long long ll; int _,n; int f[10],cas=1; int main() { #ifdef test #endif // freopen("d.in","r",stdin); scanf("%d",&_); f[1]=1,f[2]=2,f[3]=3,f[4]=5,f[5]=8,f[6]=13,f[7]=21; while(_--){ int ans=0; printf("Case #%d: ",cas++); scanf("%d",&n); if(n==1||n==2){ printf("0\n"); continue; } for(int i=1;i<=7;i++){ if(n>=f[i]) ans++; else break; } printf("%d\n",n-ans); } return 0; }
原文地址:https://www.cnblogs.com/LMissher/p/9673990.html
时间: 2024-10-12 03:55:41