2
3
4(-1) 解释4 - 1 = 3 , n==3为必败点,所以4为必胜点
5
6(-1)
7(-2)
8
9(-1)
10(-2)
11(-3)
12(-1)
13
然后就是斐波纳契……
#include<iostream>
using namespace std;
int num[50];
void init()
{
int i;
num[1]=1;num[2]=2;
for(i=3;i<=45;i++) num[i]=num[i-1]+num[i-2];
}
int main()
{
init();
int i,j;
while(scanf("%d",&i),i)
{
for(j=1;j<=45;j++)
if(i==num[j])
break;
if(j!=46) printf("Second win\n");
else printf("First win\n");
}
return 0;
}

本文详细解析了HDU2516竞赛题目,并通过使用斐波纳契数列解决该问题。通过C++代码实现了一个简单的算法来判断给定数字是否为斐波纳契数列中的项,从而确定先手或后手的胜负情况。
1178

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



