HDU 1517 A Multiplication Game

这个题要找一下规律:

我们假设1为必败点P,则2~9为必胜点,那么10~18又是必败点,19~162又为必胜点,163~324为必败点;

必胜点为m*18^n(m<=9),必败点为m*18^n(m>9);

View Code
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<algorithm>
 5 #include<cmath>
 6 #include<queue>
 7 #include<set>
 8 #include<map>
 9 #include<vector>
10 using namespace std;
11 
12 int main(  )
13 {
14     double n;
15     while( scanf( "%lf",&n )==1 )
16     {
17          while( n > 18 ) n/=18;
18        //  printf( "%lld ",n );
19          if( n <= 9 ) puts( "Stan wins." );
20          else puts( "Ollie wins." );        
21     }
22     //system( "pause" );
23     return 0;
24 }

 

posted @ 2012-04-18 21:23  wutaoKeen  阅读(154)  评论(0编辑  收藏  举报