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)。
多组输入,不超过6组。每行为一组数据,包含两个正整数M,N(M,N<2^31)。
Output:
对于每一行输入,输出一行,若小A获胜,那么输出“Stan wins”否则输出“Ollie wins”。假设这两个玩家都玩得很好。最后一行输入包含两个零,不应进行处理。
对于每一行输入,输出一行,若小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 }

浙公网安备 33010602011771号