得到一件东西需要智慧,放弃一样东西则需要勇气。 ------ 博客首页

A - 无聊的游戏

疫情当下,有两个很无聊的人,小A和小B,准备玩一个游戏,玩法是这样的,从两个自然数开始比赛。第一个玩家小A从两个数字中的较大者减去两个数字中较小者的任何正倍数,前提是得到的数字必须是非负的。然后,第二个玩家小B对得到的两个数字做同样的处理,两个玩家交替进行,直到一个玩家能够从大的数字中减去较小数字的倍数,达到0,从而获胜。例如,玩家可以从(25,7)开始:
25 7 
 
11 7 
 
4 7 
 
4 3 
 
1 3 
 
1 0

 

这是个 小A 获胜的例子.
Input:
多组输入,不超过6组。每行为一组数据,包含两个正整数M,N(M,N<2^31)。
Output:
对于每一行输入,输出一行,若小A获胜,那么输出“Stan wins”否则输出“Ollie wins”。假设这两个玩家都玩得很好。最后一行输入包含两个零,不应进行处理。
Sample Input:
34 12
15 24
0 0

 

Sample Output:
Stan wins
Ollie wins

 

代码如下:
 1 #include<stdio.h>
 2 int main()
 3 {
 4  int a,b;
 5     while(~scanf("%d%d",&a,&b)&&a)
 6     {
 7             int flag=1;
 8             while(1)
 9             {
10                 if(a>b)
11                 {
12                     int t=a;
13                     a=b;
14                     b=t;
15                 }
16                 if(b%a==0||b/a>=2||a==0)break;
17                 b%=a;
18                 flag=!flag;
19                
20             }
21                if(flag)
22             {
23                 printf("Stan wins\n");
24             }
25             else
26             {
27                 printf("Ollie wins\n");
28             }
29         }
30    return 0;
31 }

 

 
 
posted @ 2020-04-07 21:20  lovelycaier  阅读(11)  评论(0)    收藏  举报