比如,題目是這樣的:現在有兩堆石子,小今與小條玩遊戲,2個人都足夠聰明,兩個人規定:每次每人只能從其中一堆中取走1個或2個或3個石子,最後將石子全部取完的人勝利.現在兩堆石子的個數為8和9,請問如何安排才能讓小今必勝?
答案是: 讓小今先取。
其實這裡是有規律可循的,可歸結為 「取餘制勝」 。詳解如下:
一 取餘制勝(取棋子,報數遊戲)
1.每次取1~n個棋子,總數,取最後乙個贏 策略:總數÷(1+n)
有餘則先,拿掉餘數,之後總與對手湊成1+n即可 無餘則後,總與對手湊成1+n即可
2. 每次取1~n個棋子,總數,取最後乙個輸
策略:最狠的做法就是留給對方一枚棋子,對方不取也得取。所以想贏的關鍵就在於能不能取到倒數第二枚棋子。
問題轉化為:每次取1~n個棋子,總數,取倒數第二枚棋子贏。 (總數-1)÷(1+n),之後同1中做法。
所以這道題,可以分兩堆考慮,9個的那堆,9%(1+3) 等於1,所以小今首先取1,然後不管小天取幾,都和他湊成4, 這樣9這一堆,小今必定最後取。然後小天去取8那一堆,因為8%4 = 0.所以,需要後取,只要和小天所取湊夠4就好ok了。
C語言筆試題中的「坑」
其實這話說的不對,應該說不只是c語言,恐怕是面試題總會有那麼一些坑等著我們踩,今天,就羅列了一些看似簡單,卻很容易中招的面試題 1 以下程式的執行結果為。inlcude define n 2 define m n 1 define num m 1 m 2 main a 5b 6c 8d 9 嘿嘿,當...
JS筆試題中的型別轉換
分享一道筆試題 let x valueof console.log x 20 console.log x 30 複製 答案是false true 為什麼?讓我們回到紅寶書中,對於相等描述符是這樣表述的 是相等操作符,如果兩個運算元相等,則返回true,而不相等操作符由嘆號後更等於號 表示,如果兩個運...
微策略筆試題
題目 序列123.n,n介於3和9之間,在其中加入 或者空格,使其和為0,如123456 1 2 3 4 5 6 7 等價於1 23 45 67 0。請問,如何獲得所有組合?使用遞迴和非遞迴。下面的 是別人寫的,個人認為很好就收藏了。c 序列123.n,n介於3和9之間,在其中加入 或者空格,使其和...