取石子遊戲 (斐波那契博弈)

2021-09-26 05:57:42 字數 893 閱讀 5712

題目

1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。取完者勝.先取者負輸出"second win".先取者勝輸出"first win". 

input

輸入有多組.每組第1行是2<=n<2^31. n=0退出. 

output

先取者負輸出"second win". 先取者勝輸出"first win". 

參看sample output. 

樣例sample input

2

1310000

0

sample output

second win

second win

first win

這道題目只要列出一下先手輸掉的情況2,3,5,8,13....................這樣不難發現這是乙個斐波那契博弈,也就是說,只要是斐波那契數,就是先手必敗!

#include #include #include #include #include #include #include #include #include #include #include #include typedef long long ll;

#define inf 0x3f3f3f3f

using namespace std;

int a, b;

int main()

m = (a + b);

a = b;

b = m;

} if (flag) printf("second win\n");

else printf("first win\n");

} return 0;

}

F 取石子遊戲斐波那契博弈

1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。取完者勝.先取者負輸出 second win 先取者勝輸出 first win input 輸入有多組.每組第1行是2 n 2 31.n 0退出.output 先取者負輸出 secon...

取石子 五) (斐波那契博弈)

himdd最近很想玩遊戲,於是他找到acmj和他一起玩,遊戲是這樣的 有一堆石子,兩個人輪流從其中取走一定的石子,取走最後所有石子的人為贏家,不過得遵循如下規則 1.第一次取不能取完,至少取1顆.2.從第二次開始,每個人取的石子數至少為1,至多為對手剛取的石子數的兩倍。himdd事先想知道自己會不會...

HDU 2516 取石子遊戲(斐波那契博弈)

本題是傳說中的斐波那契博弈,即 必敗點形成了fibonacci數列,通過找規律就可以看出來的 為何比賽時木有發現 problem description 1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。取完者勝.先取者負輸出 sec...