您的位置:首页 > 大数据 > 人工智能

HDU 1848 Fibonacci again and again

2012-09-06 17:27 465 查看
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

const int MAXN = 1005;
int fib[MAXN], e[MAXN], h[20];

void calcFib()
{
int i;
fib[1] = 1, fib[2] = 2;
for(i = 3; i <= 16; i ++)
{
fib[i] = fib[i - 1] + fib[i - 2];
}
}

void calcE()
{
int i, j, k;
e[0] = 0, e[1] = 1;
for(i = 2; i <= 1000; i ++)
{
memset(h, 0, sizeof h);
for(j = 1; fib[j] <= i; j ++)
{
h[e[i - fib[j]]] = 1;
}
for(j = 0; j <= 15; j ++)
{
if(h[j] == 0)
{
e[i] = j;
break;
}
}
}
}

int main()
{
int m, n, p;
calcFib();
calcE();
while(scanf("%d%d%d", &m, &n, &p), m || n || p)
{
puts(((e[m] ^ e
^ e[p]) == 0) ? "Nacci" : "Fibo");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: