取石頭的問題

2021-06-18 08:40:52 字數 420 閱讀 9636

n個石頭,2個人依次只能取1、3、4個石頭,取到最後乙個石頭者贏。判斷第乙個取的人是否會贏。

下面的**在時間複雜度上還有很嚴重的問題,n為2位數時還好,大於100直接蹦掉了,希望有大牛給修正下。。。。

不過這個題也可以先算出來規律,然後一行**搞定~~

對於這種取法,除以7餘0或者除以7餘2時,先取的人都會輸,其他情況下,先取的都能保證贏~~

#include using namespace std;

bool choose(int n)

else

}}int main()

{ //cout << "hello world!" << endl;

int num;

while(1){

cout<<"請輸入石頭總數:\n"<>num;

cout<

輪流取石頭

兩個足夠聰明的人玩輪流取石頭的遊戲,誰取到最後乙個石頭誰就贏了,他們一次只能取1個 3個 7個或8個石頭,寫一程式判斷n個石頭時先取的人是輸還是贏。輸入格式 乙個整數n,其值不超過10000000。輸出格式 如果先取的人贏,請以單獨一行輸出1,否則輸出0。輸入樣例 這裡是3組輸入。輸出樣例 上面3組...

7 2 取石頭遊戲

兩個足夠聰明的人玩輪流取石頭的遊戲,誰取到最後乙個石頭誰就贏了,他們一次只能取1個 3個 7個或8個石頭,寫一程式判斷n個石頭時先取的人是輸還是贏。乙個整數n,其值不超過10000000。如果先取的人贏,請以單獨一行輸出1,否則輸出0。這裡是3組輸入。110300上面3組資料對應的輸出分別如下 11...

36 取石頭 10分

題目內容 有甲乙兩個人玩取石子遊戲,共有n個石子 1 n 30000 兩個人輪流取,甲先取.每次最多取m個 1 m 30000 最少取乙個,當輪到誰取的時候沒有石子了,誰就贏.比如4個石子,每次最多取3個,那末先取的人 甲 一定贏n和m誰大沒有限制.甲拿走3個,乙隻拿走1個,下面輪到甲了,但是沒有石...