HDOJ1525&POJ2348 Euclid's Game

这是一道找规律的博弈题,我们只要找到谁拥有主动权,而主动权就是当一个数是另外一个数的2倍以上,这时他就可以掌握全局的胜利;

View Code
#include<iostream>

 #include<cstdio>

 #include<cstdlib>

 #include<algorithm>

 #include<cmath>

 #include<queue>

 #include<set>

 #include<map>

 #include<cstring>

 #include<vector>

 #include<string>

 #define LL long long

 using namespace std;

 

 int main(  )

 {

     int n,m;

     while( scanf( "%d %d",&n,&m ),n|m )

     {

        if( n < m ) swap( n , m );

        int cnt = 0;

        while( m!=0&&n/m == 1 )

        {

              cnt++;

              n -= m;

              swap( n , m );        

        }

        if( m != 0  ) 

        {

             if( cnt % 2 == 0 )

             puts( "Stan wins" );

             else puts( "Ollie wins" ) ;

        }

        else if( cnt % 2 == 0 )puts( "Ollie wins" ) ;

             else puts( "Stan wins" );

     }

     //system( "pause" );

     return 0;

 }

 

你可能感兴趣的:(game)