作業 拿球問題

2021-09-11 20:12:10 字數 923 閱讀 7519

題目:

今盒子裡有 n個小球,a 、b兩人輪流從盒中取球,每個人都可以看到另乙個人取了多少個,

也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。

我們約定:

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

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

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

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

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

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

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

樣例輸入

412

1018

樣例輸出

011

0

分析:因為題目的資料時10000,所以可以先計算出1-10000個球的輸贏情況

首先那第乙個球的時候a的情況是輸了記為false

第二個球的時候第乙個拿球的人是true

第三個球的時候第乙個拿球的人是無論是拿1個球,或是3個球,都是false

第四個球第乙個拿球的人無論是拿1個球,或是3個球,都是true

第五個球第乙個拿的人拿乙個球的之後,還剩四個,再輪到第二個人拿,就變成了拿第四個球的結果了

接下來的情況就如上了

所以**描述

public class main ;

for(int i=9;i<10000;i++) }}

scanner sc = new scanner(system.in);

int n = sc.nextint();

int qiu = new int[n];

for(int i=0;ifor(int i=0;i}

關於拿球的問題

桌上排列著100個球,兩個人輪流拿球裝入口袋,能拿到第100個球的人為勝利者,條件是 拿球者每次至少要拿1個但最多不能超過五個,問 如果你是先拿球的人,以後不管怎麼都能保證你能得到第100個球,你個先拿幾個?然後怎麼拿?為什麼?解題思路 1 我們不妨逆向推理,如果只剩6個桌球,讓對方先拿球,你一定能...

拿雞蛋問題

題目 1個1個拿,正好拿完。2個2個拿,還剩1個。3個3個拿,正好拿完。4個4個拿,還剩乙個。5個5個拿,還差1個。6個6個拿,還剩3個。7個7個拿,正好拿完。8個8個拿,還剩1個。9個9個拿,真好拿完。1 using system 2using system.collections.generic...

week10 作業C 拿數問題II

給 n 個數,每一步能拿走乙個數,比如拿第 i 個數,ai x,得到相應的分數 x,但拿掉這個 ai 後,x 1 和 x 1 如果有 aj x 1 或 aj x 1 存在 就會變得不可拿 但是有 aj x 的話可以繼續拿這個 x 求最大分數。本題和課上講的有些許不一樣,但是核心是一樣,需要你自己思考...