HDU 5620 KK's Steel

题目:点击打开链接

代码:

#include<stdio.h>
#include<string.h>

using namespace std;

int main()
{
    int t;
    scanf("%d",&t);
    __int64 b[200]={1,2,3,5,8};//找规律
    while(t--)                 //斐波那契的数组要用__int64
    {
        __int64 a;
        scanf("%I64d",&a);
        int i;
        __int64 sum=0;
        for(i=0;i<=200;i++)
        {
            if(i>=2)b[i]=b[i-1]+b[i-2];
            sum=sum+b[i];
            if(a<sum)break;
        }
        if(a>=5)
        printf("%d\n",i);
        else if(a==4)printf("2\n");
        else if(a==3)printf("2\n");
        else if(a==2)printf("1\n");
        else if(a==1)printf("1\n");    //还可以优化
    }
}


你可能感兴趣的:(HDU 5620 KK's Steel)