#include<bits/stdc++.h>
using namespace std;
int m,n,p;
int s[1005];
int f[1005];
void sg(){
int i,j;
int vis[1005];
memset(s,0,sizeof s);
for(i=1;i<=1005;i++){
memset(vis,0,sizeof vis);
for(j=1;f[j]<=i;j++)
vis[s[i-f[j]]]=1;
for(j=0;;j++)
if(vis[j]==0){
s[i]=j;
break;
}
}
}
int main()
{
f[1]=1;
f[2]=2;
for(int i=3;i<=1005;i++){
f[i]=f[i-2]+f[i-1];
}
sg();
int sum;
while(scanf("%d%d%d",&m,&n,&p)!=EOF){
if(m==0&&n==0&&p==0) break;
sum=s[m]^s[n]^s[p];
if(sum==0) printf("Nacci\n");
else printf("Fibo\n");
}
return 0;
}
hdu1848
最新推荐文章于 2021-08-08 15:44:09 发布
本文介绍了一个使用C++实现的斐波那契数列和Nacci数列判断算法,通过`sg()`函数计算并存储数列,以解决输入的m、n和p对应的数列元素的运算。核心是动态规划求解和数列识别技术。
4323

被折叠的 条评论
为什么被折叠?



