HDU 5620 KK's Steel

想了一下发现是斐波那契数列.....水题

#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <queue>
#include <stack>
#include <map>
#include <vector>
using namespace std;

const int maxn=1000;
long long n;
long long a[maxn];

void init()
{
    a[1]=1; a[2]=2;
    for(int i=3;i<=90;i++) a[i]=a[i-1]+a[i-2];
}

int main()
{
    init();
    int T;
    scanf("%d",&T);
    while(T--)
    {scanf("%lld",&n);
        int ans;
        long long sum=0;
        for(int i=1;;i++)
        {
            sum=sum+a[i];
            if(sum<=n) ans=i;
            else break;
        }
        printf("%d
",ans);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/zufezzt/p/5189050.html