演算法學習之路|歐幾里得遊戲
小明和小紅在玩歐幾里得遊戲。他們從兩個自然數開始,第一個玩家小明,從兩個數的較大數中減去較小數的儘可能大的正整數倍,只要差為非負即可。然後,第二個玩家小紅,對得到的兩個數進行同樣的操作,然後又是小明。就這樣輪流進行遊戲,直至某個玩家將較大數減去較小數的某個倍數之後差為0為止,此時遊戲結束,該玩家就是勝利者。
輸入格式
輸入包含多組測試資料。每組輸入兩個正整數,表示遊戲一開始的兩個數,遊戲總是小明先開始。
當輸入兩個0的時候,輸入結束。
輸出格式
對於每組輸入,輸出最後的勝者,我們認為他們兩個都是頂尖高手,每一步遊戲都做出了最佳的選擇。
具體輸出格式見輸出樣例。
樣例輸入
34 12
15 24
0 0
樣例輸出
xiaoming wins
xiaohong wins
解題思路
簡單博弈題:誰能拿到主動權誰就能掌握勝局(畢竟兩人都絕頂聰明),拿到主動權的意思就是你有多種選擇,也就是大數是小數的兩倍以上。
#include<stdio.h>
int main()
{
int a,b,flag,t;
while(scanf("%d%d",&a,&b)!=EOF&&a&&b)
{
flag=0;
while(a!=b)
{
if(a<b)
{
t=a;
a=b;
b=t;
}
flag++;
if(a/b>=2)
{
break;
}
a=a-b;
}
if(flag%2==0)
printf("xiaohong wins
");
else
printf("xiaoming wins
");
}
}
相關文章
- 類歐幾里得演算法學習筆記演算法筆記
- 歐幾里得演算法與擴充套件歐幾里得演算法演算法套件
- 演算法學習之路|划拳演算法
- 演算法學習之路|A除以B演算法
- 演算法學習之路|列印排名演算法
- 演算法學習之路|方格分割演算法
- 演算法學習之路|朋友數演算法
- 演算法學習之路|SpellItRight演算法
- 演算法學習之路|月餅演算法
- 演算法學習之路|PATRanking演算法
- 演算法學習之路|列印沙漏演算法
- 演算法學習之路|快速排序演算法排序
- 演算法學習之路|結繩演算法
- 演算法學習之路|數零壹演算法
- 演算法學習之路|開學寄語演算法
- 演算法學習之路|說反話演算法
- 演算法學習之路|幼兒園買玩具演算法
- 演算法學習之路|小賭怡情演算法
- 演算法學習之路|影像過濾演算法
- 演算法學習之路|日期問題演算法
- 演算法學習之路|賣個萌演算法
- 演算法學習之路|螺旋矩陣演算法矩陣
- 演算法學習之路|選擇題演算法
- 演算法學習之路|字元統計演算法字元
- 演算法學習之路|科學計數法演算法
- 演算法學習之路|PlayOnWords(尤拉道路+dfs)演算法
- 演算法學習之路|舊鍵盤打字演算法
- 演算法學習之路|最簡分數演算法
- 演算法學習之路|檢驗身份證演算法
- 演算法學習之路|愛丁頓數演算法
- 演算法學習之路|最小生成樹——prime演算法演算法
- 強化學習之路一 QLearning 演算法強化學習演算法
- 演算法學習之路|個位數統計演算法
- 演算法學習之路|狀態壓縮dp演算法
- 演算法學習之路|棋盤問題(博弈)演算法
- 演算法學習之路|進位制轉換演算法
- 演算法學習之路|宇宙無敵加法器演算法
- 演算法學習之路|四平方和演算法