今盒子里有 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;
}
转载于:https://blog.51cto.com/69680919/1330679