天天看點

杭電5914-斐波那契數列思路

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
int flag[25];
int node[20];
void getSum()
{
    int i;
    node[0]=1;
    flag[1]=1;
    node[1]=1;
    for(i=2;;i++)
    {
        node[i]=node[i-1]+node[i-2];
        if(node[i]>20)break;
        flag[node[i]]=1;
    }
}
int main()
{
    int T,n,i,sum,Case;
    memset(flag,0,sizeof(flag));
    getSum();
    scanf("%d",&T);
    Case=0;
    while(T--)
    {
        sum=0;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
            if(flag[i]==0)sum++;
        }
        printf("Case #%d: %d\n",++Case,sum);
    }
return 0;
}