智力遊戲(常勝將軍)

2021-06-28 12:29:08 字數 1155 閱讀 7273

/**************************************** 

* file name : game.c

* creat data : 2015.1.30

* author : zy

*****************************************/

/*智力遊戲*/

/*常勝將軍*/

/*現有21根火柴,兩人輪流取,每人每次可以取1至4根

,不可多取,也不能不取,誰到最後一根火柴誰輸。請

編寫乙個程式人機對弈,要求人先取,計算機後取,計

算機一方為「常勝將軍」。

後走一方取子的數量與對方剛才一步取子的數量之和為5

,就可以保證最後乙個子是留給先取子的人。*/

#include int main(void)

while(i > 4||i < 1|| i > a);//接受正常輸入

if((a-i) > 0)

if((a-i) <= 0)//輸出取勝標記

else//輸出計算機取得子數

a -= 5;

printf("%d sticks left in the pile.\n",a);

} return 0;

}

/*搶30*/

/*兩個人從1開始輪流報數,每人一次可報乙個數或兩個

連續的數,誰先報到30,誰就是勝方*/

//隨機數有問題

#include #include #include int people(int t)//控制人取正確的書

else

}while(a > 2||a < 1||t+a > 30);

return (t+a);

}int computer(int s)

else if(1 == (s+1)%3)

else

return s;

}int main(void)

while(tol != 30)

else

}} printf("\n* * * * * * * game over * * * * * * *\n");

return 0;

}

數學趣題 常勝將軍

21根火柴,a和b每人每次可以取走1 4根,不可多取,也不可不取,取最後一根火柴者輸,要求a先取,b後取。如何保證b永遠是勝利者。即必須是b最後只留給a 1根火柴。也就是除了最後第21根火柴,之前的每一輪都必須保證a和b取到的火車數之和為5。include 2 3 int main 4 16 17 ...

數學回味系列之20 常勝將軍

問題提出 規則 a b 兩人玩取火柴的遊戲,共有 21 根火柴。每人每次最多取 4 根,最少取 1 根。取到最後一根火柴的玩家算輸。如何保證某一玩家每次都贏?解題思路 常勝將軍 是 取火柴遊戲 的乙個特例。如果每次都想讓其中乙個玩家贏 假設為b 那麼b 要保證最後一輪剩餘6根,這樣不管a怎麼取 都會...

智力遊戲 猜數字

還記得,我小時候,成天跟著小夥伴瘋玩,在那個時代,沒有智慧型手機,沒有王者農藥,孩子們湊在一起,最喜歡的遊戲除了丟手絹 以外,猜中指遊戲可謂獨得寵愛,肯定有人問,啥是猜中指遊戲?很簡單,拿出乙隻手,這五根手指,不管你怎麼扯,怎麼掰,怎麼打亂順序都行,每個人中指只有乙個,排好以後,拿另乙隻手緊緊握住,...