分析:
两个人进行乘法,从1开始,每次成 2 ~ 9中任意一个数。谁先乘到>=n就胜利。。
可知 2 ~ 9 (18^0*9)时 , 先手胜。
10 ~ 18(18^0*18)时,后手胜,因为第一个人先乘最小的2,得到18.
19 ~ 162(18^1*9)时,先手胜,因为 n = 19 自己先乘2,然后对手乘最大9,才得到18。
n = 162,自己先成9,对手最小乘2,则自己可以得到最大的162;
163 ~ 324(18^1*18)时,后手胜
.....
由此可以得到规律:先让n 不断的 / 18 , 知道 n<=18 时 , 判断与 9 的大小。。。
注意用double、、
include"stdio.h"
int main()
{
double n;
while(scanf("%lf",&n)!=-1)
{
while(n>18)n/=18;
if(n<=9)printf("Stan wins.\n");
else printf("Ollie wins.\n");
}
return 0;
}