满意答案
oxHL80PA
2013.12.17
采纳率:57% 等级:13
已帮助:11353人
呵呵,很经典的一道题目。
先贴效果图:
请输入您要拿的火柴数目:
3
第 1 轮,您拿 3 跟,电脑拿 2 根,还剩:16 根
请输入您要拿的火柴数目:
4
第 2 轮,您拿 4 跟,电脑拿 1 根,还剩:11 根
请输入您要拿的火柴数目:
2
第 3 轮,您拿 2 跟,电脑拿 3 根,还剩:6 根
请输入您要拿的火柴数目:
4
第 4 轮,您拿 4 跟,电脑拿 1 根,还剩:1 根
请输入您要拿的火柴数目:
3
每次能拿的火柴只能是1-4之间,且不得超过还剩下的根数,谢谢
请输入您要拿的火柴数目:
1
很遗憾,您输啦!
请按任意键继续. . .
再贴代码:
#include "stdio.h"
#include "stdlib.h"
main()
{
int a=0;
int sum=0;
int count=0;
while(1)
{
printf("\n请输入您要拿的火柴数目:\n");
scanf("%d",&a);
if(a<=4&&a>=1&&a<=21-sum)
{
if(sum==20&&a==1)
{
printf("很遗憾,您输啦!\n");
break;
}
else
{
count++;
sum+=a+5-a;
printf("第 %d 轮,您拿 %d 跟,电脑拿 %d 根,还剩:%d 根\n",count,a,5-a,21-sum);
}
}
else
{
printf("每次能拿的火柴只能是1-4之间,且不得超过还剩下的根数,谢谢\n");
}
}
system("pause");
}
最后写思路:
说是人机博弈,其实是计算机作弊。博弈真正用的就是在象棋,五子棋,扑克牌等游戏上。
这个游戏的思路是这样的:
玩家每次拿的根数是1-4 根,假设是x根 1《=x《=4
而电脑则拿5-X根。那么每次电脑和玩家那的总数就是5根
4轮过后。轮到的永远是玩家,就剩一根了。
所以,玩家必输。
楼主好运!
00分享举报