只要记住2 和 9 交替出现就行了(当然 n==2 n==9 的时候例外)
下面的说明来自:http://blog.sina.com.cn/s/blog_67e7f5fa0100ij5o.html
#include <stdio.h>
int main()
{
__int64 sum;
int flag,res;
while(scanf("%I64d",&sum)!=EOF)
{
if(sum==1)
{
puts("Stan wins.");
continue;
}
else
{
flag=temp=1;
//让sum依次处理9 2 9 2 ......
while(sum > 1)
{
//一开始是9
if(flag)
{
temp = 9;
flag = 0;
}
//然后是2
else
{
temp=2;
flag=1;
}
sum = sum%temp==0?(sum/temp:sum/temp+1);
}
//这个...是总结出来的规律..
if(temp==9)
puts("Stan wins.");
else
puts("Ollie wins.");
}
}
}
return 0;
}
本文介绍了一种特殊的博弈算法,通过不断将数值除以2和9来判断必胜点和必败点,以此来决定游戏的胜负。

203

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



