C++欧几里得游戏?

小明和小红在玩欧几里得游戏。他们从两个自然数开始,第一个玩家小明,从两个数的较大数中减去较小数的尽可能大的正整数倍,只要差为非负即可。然后,第二个玩家小红,对得到的两个数进行同样的操作,然后又是小明。就这样轮流进行游戏,直至某个玩家将较大数减去较小数的某个倍数之后差为0为止,此时游戏结束,该玩家就是胜利者。输入包含多组测试数据。每组输入两个正整数,表示游戏一开始的两个数,游戏总是小明先开始。当输入两个0的时候,输入结束。

图片的解法这里不是已经保证a>b了吗?那么a/b一定大于1,为什么还会有if(a/b!=1)?此外执行完break以后应该执行哪里呀?

 

a和b的大小关系还有个相等呢,你能保证说a>b,的时候a/b!=1,但是a=b的时候a/b==1?执行完break是退出15行的while,执行这个while后面的内容。