这个题的两种找规律的解法,当然还有kuangbin博客上的的常规思路解法(这个比较难啊),取巧的前两个还是可以接收的。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
long long n,x;
while(scanf("%lld",&n)!=EOF)
{
for(x=0;n>1;x++)
{
if(x&1)
n=ceil(n*1.0/2);//floor()是向负无穷大舍入,floor(-10.5) == -11;ceil()是向正无穷大舍入,ceil(-10.5) == -10
else
n=ceil(n*1.0/9);
}
puts(x&1?"Stan wins.":"Ollie wins.");
}
return 0;
}
#include<stdio.h>
int main()
{
double n;
while(scanf("%lf",&n)!=EOF)
{
while(n>18) n/=18;
printf(n<=9?"Stan wins.\n":"Ollie wins.\n");
}
return 0;
}