1 #include<stdio.h>
2 void main()
3 {
4 int sg[1001],num[1001],fib[16]={1,2},n,m,p,j,i;
5 for(i=2;i<16;i++)
6 fib[i]=fib[i-1]+fib[i-2];//求出斐波那契数列
7 sg[0]=0;//0的sg值为0
8 for(i=1;i<1001;i++)
9 {
10 for(j=0;fib[j]<=i;j++)
11 num[sg[i-fib[j]]]=i;//把i的后继的sg值都标注一下,表示出现过了,后面找sg的时候用
12 for(j=0;j<=i;j++)
13 if(num[j]!=i)
14 {sg[i]=j;break;}//找到最小的整数j,成为i的sg值
15 }
16 while(scanf("%d%d%d",&n,&m,&p)==3&&(m!=0||n!=0||p!=0))
17 puts(sg[m]^sg[n]^sg[p]?"Fibo":"Nacci");//异或判断博弈结果,输出结果
18 }
posted on 2009-02-06 22:43
混沌的云 阅读(170)
评论(0) 编辑 收藏 引用