歐幾里德的遊戲

2021-08-01 08:47:45 字數 626 閱讀 4011

這題目好像輾轉相除。

每次的兩個數 a , b (a>b)

分為兩種情況:

一, 此時狀態為: a/b>1 ,那最完美的做法是取走(a/b-1)*b,那麼剩下的兩個數就為(a%b+b,b),

對手唯一的做法就是取走b,剩下(b,a%b),這樣就能保證每一次的初狀態都是由自己取,那等到

a%b==0 時,就會獲勝。所以到這種初狀態時,這時的選手一定獲勝。

二, a/b=1

那只能取走b,就會得到(a%b , b),直到第一種狀態時,輪到誰誰就獲勝

#include

#include

#define ll long long

using

namespace

std;

int n;

int main()

if(f==1) printf("stan wins\n");

else

printf("ollie wins\n");

}return

0;}

歐幾里德的遊戲

題目描述 歐幾里德的兩個後代stan和ollie正在玩一種數字遊戲,這個遊戲是他們的祖先歐幾里德發明的。給定兩個正整數m和n,從stan開始,從其中較大的乙個數,減去較小的數的正整數倍,當然,得到的數不能小於0。然後是ollie,對剛才得到的數,和m,n中較小的那個數,再進行同樣的操作 直到乙個人得...

歐幾里德的遊戲

數論 題目描述 歐幾里德的兩個後代stan和ollie正在玩一種數字遊戲,這個遊戲是他們的祖先歐幾里德發明的。給定兩個正整數m和n,從stan開始,從其中較大的乙個數,減去較小的數的正整數倍,當然,得到的數不能小於0。然後是ollie,對剛才得到的數,和m,n中較小的那個數,再進行同樣的操作 直到乙...

歐幾里德的遊戲

歐幾里德的兩個後代stan和ollie正在玩一種數字遊戲,這個遊戲是他們的祖先歐幾里德發明的。給定兩個正整數m和n,從stan開始,從其中較大的乙個數,減去較小的數的正整數倍,當然,得到的數不能小於0。然後是ollie,對剛才得到的數,和m,n中較小的那個數,再進行同樣的操作 直到乙個人得到了0,他...