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; }