hdu 1848

来源:互联网 发布:医疗软件代理 编辑:程序博客网 时间:2024/06/05 03:32
#include<stdio.h>#include<string.h>int a[25];int Sg[1010];bool visted[25];void solve(){   Sg[0]=0;   int j;  for(int i=1;i<=1000;i++)   {             memset(visted,0,sizeof(visted));           for(int j=1;a[j]<=i;j++)           {              visted[Sg[i-a[j]]]=1;           }           for( j=0;;j++)           {                if(!visted[j])                 break;                                   }                      Sg[i]=j;   }     }int main(){    a[1]=1;    a[2]=1;        for(int i=3;i<=17;i++)      a[i]=a[i-1]+a[i-2];    // printf("%d+++",a[20]);    // for(int i=1;i<=17;i++)    //   printf("%d+ ",a[i]);         int n,m,p,ans;        solve();        while(scanf("%d%d%d",&n,&m,&p)!=EOF)    {      ans=0;      if(n==0 && m==0 && p==0)      break;      ans=Sg[n]^Sg[m]^Sg[p];            if(ans)      {       printf("Fibo\n");             }      else      printf("Nacci\n");                                            }            return 0; }