題目:
今盒子裡有 n個小球,a 、b兩人輪流從盒中取球,每個人都可以看到另乙個人取了多少個,
也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。
我們約定:
每個人從盒子中取出的球的數目必須是: 1,3 ,7或者 8個。
輪到某一方取球時不能棄權!
a先取球,然後雙方交替取球,直到取完。
被迫拿到最後乙個球的一方為負方(輸方)
請程式設計確定出在雙方都不判斷失誤的情況下,對於特定的初始球數, a是否能贏?
先是乙個整數 n(n<100),表示接下來有n個整數。然後是 n個整數,每個佔一行(整數 <10000),表示初始球數。
輸出 n行,表示a 的輸贏情況(輸為 0,贏為1 )。
樣例輸入
412樣例輸出1018
011分析:因為題目的資料時10000,所以可以先計算出1-10000個球的輸贏情況0
首先那第乙個球的時候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 求最大分數。本題和課上講的有些許不一樣,但是核心是一樣,需要你自己思考...