兩個人玩乙個數字遊戲,給定兩個正整數a,b,兩個人輪流從乙個數中減去另外乙個數的正數倍,要保證結果非負,首先得到0的人獲勝。例如:30 8經過一步操作可以變為22 8 或者14 8 或者 6 8。兩個人都足夠聰明。
輸入格式:
多組資料,每組資料佔一行是兩個空格分隔的正整數(在32位整書範圍內)
輸出格式:
每組資料一行,輸出是第乙個人贏,還是第二個人贏。
輸入:3 5
4 5輸出:12
/*
兩個人玩乙個數字遊戲,給定兩個正整數a,b,兩個人輪流從乙個數中減去另外乙個數的正數倍,要保證結果非負,
首先得到0的人獲勝。例如:30 8經過一步操作可以變為22 8 或者14 8 或者 6 8。兩個人都足夠聰明。
輸入格式:
多組資料,每組資料佔一行是兩個空格分隔的正整數(在32位整書範圍內)
輸出格式:
每組資料一行,輸出是第乙個人贏,還是第二個人贏。
輸入:3 5
4 5輸出:12
思路:如果你知道連分數
4 + 1/(2 + 1/(6 + 1/7)) 中的冗餘部分可得到簡略記號 [4; 2, 6, 7]。
先手必敗當且僅當:
(sqrt(5)-1)/2=1/[1;1,1,1,...] #include #include #include using namespace std;
double lt=(sqrt(5.0)-1)/2.0;
double rt=(sqrt(5.0)+1)/2.0;
bool iswin(int a,int b)else
} return 0;
}
黃金連分數
分割數0.61803.是個無理數,這個常數十分重要,在許多任務程問題中會出現。有時需要把這個數字求得很精確。對於某些精密工程,常數的精度很重要。也許你聽說過哈勃太空望遠鏡,它首次公升空後就發現了一處人工加工錯誤,對那樣乙個龐然大物,其實只是鏡面加工時有比頭髮絲還細許多倍的一處錯誤而已,卻使它成了 近...
黃金連分數
分割數0.61803.是個無理數,這個常數十分重要,在許多任務程問題中會出現。有時需要把這個數字求得很精確。對於某些精密工程,常數的精度很重要。也許你聽說過哈勃太空望遠鏡,它首次公升空後就發現了一處人工加工錯誤,對那樣乙個龐然大物,其實只是鏡面加工時有比頭髮絲還細許多倍的一處錯誤而已,卻使它成了 近...
黃金連分數
分割數0.61803.是個無理數,這個常數十分重要,在許多任務程問題中會出現。有時需要把這個數字求得很精確。對於某些精密工程,常數的精度很重要。也許你聽說過哈勃太空望遠鏡,它首次公升空後就發現了一處人工加工錯誤,對那樣乙個龐然大物,其實只是鏡面加工時有比頭髮絲還細許多倍的一處錯誤而已,卻使它成了 近...