/*1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。
取完者胜.先取者负输出2.先取者胜输出1.找出规律,斐波拉契数列*/
#include<iostream>
using namespace std;
const int N=65536;
int main()
{
int num;
cin>>num;
int a[N]={0};
a[0]=2;
a[1]=3;
int flag=1;
if (num==2||num==3)
{
flag=2;
cout<<flag<<endl;
return 0;
}
for (int i=2;i<N;i++)
{
a[i]=a[i-1]+a[i-2];
if (a[i]==num)
{
flag=2;
break;
}
if (a[i]>num)
{
break;
}
}
cout<<flag<<endl;
return 0;
}
2015华为校招机试-取石子游戏
最新推荐文章于 2021-03-11 22:15:04 发布