A Multiplication Game
**Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4369 Accepted Submission(s): 2480
**
\
Problem 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.
\
\
这种相乘的类似于相加的,但都是巴什,都是由简单的问题推想复杂的
之前的选手可以拿1~m个石子,当先手拿得石子m满足n%(m+1)==0时后手必赢。
相同的此题的分析方法也类似:
当n->2~9时先手赢
n->10~时后手赢。以此类推
\
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
double m,n;
ios::sync_with_stdio(false);
while(cin>>n)
{
if(n<=9)
{
puts("Stan wins.");
}
else
{
while( n>18)//跃过多次循环问题简化
{
n=n/18;
}
if(n<=9)
puts("Stan wins.");
else
puts("Ollie wins.");
}
}
return 0;
}
\