今盒子裏有 n 個小球,A、B 兩人輪流從盒中取球,每個人都可以看到另一個人取了多少個,也可以
看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷.
我們約定:
a).每個人從盒子中取出的球的數目必須是:1,3,7 或者 8 個.
b).輪到某一方取球時不能棄權!
c).A 先取球,然後雙方交替取球,直到取完.
d).被迫拿到最後一個球的一方爲負方(輸方).
C語言版:
#include <iostream> using namespace std; #define MAX 10000 #define LEN 10 int main() { int a[]={1,3,7,8}; int b[MAX+LEN]={0}; for(int i=1;i<MAX;i++) { if(!b[i]) { for(int j=0;j<4;j++) { b[i+a[j]]=1; } } } int num=0; while(printf("Please input a number:")) { scanf("%d",&num); if(num>MAX){ printf("你輸入的數超出邊界!\n"); // continue; } else { printf("%d\n\n",b[num]); } } return 0; }