hdu1525(博弈)

Euclid’s Game
Problem Description Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first player, subtracts any positive multiple of the lesser of the two numbers from the greater of the two numbers, provided that the resulting number must be nonnegative. Then Ollie, the second player, does the same with the two resulting numbers, then Stan, etc., alternately, until one player is able to subtract a multiple of the lesser number from the greater to reach 0, and thereby wins. For example, the players may start with (25,7):

25 7
11 7
4 7
4 3
1 3
1 0

an Stan wins.

Input The input consists of a number of lines. Each line contains two positive integers giving the starting two numbers of the game. Stan always starts.
Output For each line of input, output one line saying either Stan wins or Ollie wins assuming that both of them play perfectly. The last line of input contains two zeroes and should not be processed.

Sample Input
34 12
15 24
0 0
Sample Output
Stan wins
Ollie wins

啥也不说了,附上神仙的博客吧
www.cnblogs.com/kuangbin/p/3204627.html

#include <bits/stdc++.h>
using namespace std;
int main()
{
   
    int t,n,i,m,a;
    while(scanf("%d%d",&m,&n)!=EOF&&m&&n)
    {
   
        t=0;
        while(m&&n)
        {
   
            t++;
            if(m>=n)
            {
   
                a=m/n;
                m%=n;
                if(a>1)
                    break;
            }
            else
            {
   
                a=n/m;
                n%=m;
                if(a>1)
                    break;
            }
        }
        if(t%2)
            cout<<"Stan wins"<<'\n';
        else
            cout<<"Ollie wins"<<'\n';
    }
    return 0;
}

全部评论

相关推荐

快刀斩offer:干测试,项目组就我一个测试,准备在职考研跑路了
点赞 评论 收藏
分享
合适才能收到offe...:招聘上写这些态度傲慢的就别继续招呼了,你会发现hr和面试官挺神的,本来求职艰难就可能影响一些心态了,你去这种公司面试的话,整个心态会炸的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务