Description
Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers 2 to 9. Stan always starts with p = 1, does his multiplication, then Ollie multiplies the number, then Stan and so on. Before a game starts, they draw an integer 1 < n < 4294967295 and the winner is who first reaches p >= n.
Input
Each line of input contains one integer number n.
Output
For each line of input output one line either
Stan wins.
or
Ollie wins.
assuming that both of them play perfectly.
Sample Input
162
17
34012226
Sample Output
Stan wins.
Ollie wins.
Stan wins.
思路
可以乘2-9排,那么如果给定的数是2-9,先手肯定可以赢。如果是大于9计算一下到多少,后手肯定可以赢,因为先手乘最少的2,后手乘最大的9,10-18后手肯定可以赢。18-162先手赢,162-324,后手赢
规律,所给数一直除18直到小于18,最后小于等于9,先手赢,大于9,后手赢
代码
#include<iostream>
using namespace std;
int main()
{
double n;
while(cin>>n)
{
while(n>18)
n/=18;
if(n<=9)
cout<<"Stan wins."<<endl;
else
cout<<"Ollie wins."<<endl;
}
return 0;
}