藍橋杯真題 取球遊戲 題解

2021-08-17 12:35:51 字數 664 閱讀 2160

題目:

今盒子裡有n個小球,a、b兩人輪流從盒中取球,每個人都可以看到另乙個人取了多少個,也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。

每個人從盒子中取出的球的數目必須是:1,3,7或者8個。

輪到某一方取球時不能棄權!

a先取球,然後雙方交替取球,直到取完。

被迫拿到最後乙個球的一方為負方(輸方)

請程式設計確定出在雙方都不判斷失誤的情況下,對於特定的初始球數,a是否能贏?

程式執行時,從標準輸入獲得資料,其格式如下:

先是乙個整數n(n<100),表示接下來有n個整數。然後是n個整數,每個佔一行(整數<10000),表示初始球數。

程式則輸出n行,表示a的輸贏情況(輸為0,贏為1)。

例如,使用者輸入:

4 1

2 10

18則程式應該輸出:

0 1 1 0

思路:

屬於博弈問題,用遞迴模擬

遞迴出口:剩1個,必輸..

code:

#include 

#include

using

namespace

std;

bool iswin(int n)

int main()

藍橋杯 取球遊戲

今盒子裡有n個小球,a b兩人輪流從盒中取球,每個人都可以看到另乙個人取了多少個,也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。我們約定 每個人從盒子中取出的球的數目必須是 1,3,7或者8個。輪到某一方取球時不能棄權!a先取球,然後雙方交替取球,直到取完。被迫拿到最後乙個球的一...

藍橋杯試題 取球遊戲

今盒子裡有 n個小球,a b兩人輪流從盒中取球,每個人都可以看到另乙個人取了多少個,也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。我們約定 每個人從盒子中取出的球的數目必須是 1,3,7或者 8個。輪到某一方取球時不能棄權!a 先取球,然後雙方交替取球,直到取完。被迫拿到最後乙個...

藍橋杯 取球遊戲(博弈)

今盒子裡有n個小球,a b兩人輪流從盒中取球,每個人都可以看到另乙個人取了多少個,也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。我們約定 每個人從盒子中取出的球的數目必須是 1,3,7或者8個。輪到某一方取球時不能棄權!a先取球,然後雙方交替取球,直到取完。被迫拿到最後乙個球的一...