只要记住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;
}