1663 例 1 取石子遊戲 1

2021-10-01 11:43:00 字數 579 閱讀 1034

有一種有趣的遊戲,玩法如下:

玩家2 人;

道具n 顆石子;

規則:1、遊戲雙方輪流取石子;

2、每人每次取走若干顆石子(最少取 11 顆,最多取 kk 顆);

3、石子取光,則遊戲結束;

4、最後取石子的一方為勝。

假如參與遊戲的玩家都非常聰明,問最後誰會獲勝?

輸入僅一行兩個整數n和k 。

【輸出】

輸出僅一行,乙個整數,若先手獲勝輸出 11,後手獲勝輸出 22。

23

3

【輸出樣例】

1
說實話,這題肥腸簡單,只要用乙個公式就ok了,也就是判斷一下石子數是不是最大可取石子數加1的倍數就行了。因為只要是倍數關係,那麼只要後手使石子數一直保持這個倍數關係他就能贏了!

**如下:

#include

using

namespace std;

intmain()

取石子遊戲系列(1)

題目來自 程式設計之美 一排石頭的遊戲 n塊石頭排成一列,每塊石頭都有自己的固定位置,也就是相當於有自己的編號一樣。兩個玩家依次取石頭,每個玩家每次可以取其中任意一塊石頭,或者相鄰的兩塊,最後將所有石頭取走的玩家贏。這個遊戲有必勝策略嗎?取石子有很多變種,限定取石子的規則,就能產生不同的玩法。這類遊...

LibreOJ 取石子遊戲 1(巴什博奕)

題目鏈結 演算法解析 我們從最簡單的情景開始分析 當石子有1 m個時,毫無疑問,先手必勝 當石子有m 1個時,先手無論拿幾個,後手都可以拿乾淨,先手必敗 我們考慮往一般情況推廣 設當前的石子數為n k m 1 r 先手會首先拿走r個,接下來假設後手拿走x個,先手會拿走m 1 x個,這樣博弈下去後手必...

取石子遊戲

如下 include include intmain k b a temp floor k 1.0 sqrt 5 2.0 if temp a printf 0 n else printf 1 n return 0 一 巴什博奕 bash game 只有一堆n個物品,兩個人輪流從這堆物品中取物,規定每...