原题是这样的:
[常胜将军]
现有21根火柴,两人轮流取,每人每次可以取走1至4根,不可多取,也不能不取,谁取最后一楰火柴谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取;计算机一方为“常胜将军”。
#include <stdio.h>
#include <stdlib.h>
void fun()
{
int hcs = 21,czs = 0;
int count;
while(hcs > 0)
{
printf("Now %d\n",hcs);
if(0 == czs % 2) //人
{
do
{
printf("Person:");
scanf("%d",&count);
}while(count <= 0 || count > 4);
hcs = hcs - count;
}
else // 电脑操作
{
count = (hcs - 1) % 5; //为了凑齐 5 这个数字 不减一 会 多增加一个
printf("Computer:%d\n",count);
hcs = hcs - count;
}
czs++;
}
}
void main()
{
fun();
}