设计C语言程序,游戏规则:21根火柴,一次只能拿走1或2或3或4根,不能不拿不能弃权,人与电脑比赛。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计C语言程序,游戏规则:21根火柴,一次只能拿走1或2或3或4根,不能不拿不能弃权,人与电脑比赛。相关的知识,希望对你有一定的参考价值。

要求:人每次可输入1或2或3或4,不管怎么拿最终总是人输
请编程高手出马
最终胜利:最后一次火柴谁拿走谁输.人先拿
请给出可执行的过程

参考技术A #include<stdio.h>
int f(int n)
switch(n)
case 0:return 4;
case 4:return 3;
case 3:return 2;
case 2:return 1;

return 0;

void main()
int m=21,n;
do
scanf("%d",&n);
m-=n;
n=f(m%5);
printf ("%d\n",n);
m-=n;
while(m>1);


其实有更简单的,如下:
#include<stdio.h>
void main()
int n;
do
scanf("%d",&n);
printf ("%d\n",5-n);
while(1);
本回答被提问者采纳
参考技术B 你的意思是拿到最后一根的算输吧,
要看顺序的,先拿的就一定输。
——————————————
int match=21;
int finish=0;//结束标志
int err//错误标志
do
if(match==1)

cout<<"非常抱歉,你失败了!"<<endl;
finish=1;

else

do
char num;
cout<<"现在还剩下"<<match<<"根火柴,请问您要拿走几根?"<<endl;
cin>>num;
if(num!='1'&&num!='2'&&num!='3'&&num!='4')

cout<<"你的输入不对!!请重新输入!"<<endl;
err=1;
else

switch(num);
case'1':
case'2':
case'3':
case'4':
defalt:match=match-5;break;

while(err)

while(!finish)
参考技术C ,kkk 参考技术D 你的问题没说明白,怎么就算赢了呢???

python 实现21根火柴游戏

游戏规则::有21根火柴,人和计算机轮流拿,人先拿(输入拿几根)计算机后拿,每次至少1根最多4根,拿到最后一根火柴的算输,要确保计算机一定可以获胜

tips:保证计算机最后能拿到20,所以就不能取16~19之间,只能取到15,以此类推,计算机取的火柴数必须使总数到达5,10,15和20。

代码如下:

rint("规则:一次自能取1~4根火柴,最后取到21为输家")
#total代表取出的火柴总数
total = 0
while True:
    person = int(input('人取多少根火柴: '))       #person表示人取出的火柴数
    total += person
    print(f'当前取出火柴总数为{total},还剩下{21 - total}')
    if total < 5:
        computer = 5 - total                        # computer表示计算机取出的火柴数
        total += computer
        print(f'计算机拿{computer}根')
        print(f'当前取出火柴总数为{total},还剩下{21 - total}')
    elif total < 10 :
        computer = 10 - total
        total += computer
        print(f'计算机拿{computer}根')
        print(f'当前取出火柴总数为{total},还剩下{21 - total}')
    elif total < 15:
        computer = 15 - total
        total += computer
        print(f'计算机拿{computer}根')
        print(f'当前取出火柴总数为{total},还剩下{21 - total}')
    elif total < 20 :
        computer = 20 - total
        total += computer
        print(f'计算机拿{computer}根')
        print(f'当前取出火柴总数为{total},还剩下{21 - total}')
    else:
        print("游戏结束")
        break

结果如下:

以上是关于设计C语言程序,游戏规则:21根火柴,一次只能拿走1或2或3或4根,不能不拿不能弃权,人与电脑比赛。的主要内容,如果未能解决你的问题,请参考以下文章

BZOJ3105-新Nim游戏

[bzoj3105] [cqoi2013] 新Nim游戏

[CQOI2013]新Nim游戏(博弈论,线性基)

[CQOI2013]新Nim游戏(线性基)

BZOJ3105[cqoi2013]新Nim游戏 贪心+线性基

python 实现21根火柴游戏