C语言------实现抢21根火柴的小游戏

有21根火柴,两人依次取,每次每人只可取走1~4根,不能多取,也不能不取,谁先取得最后一,火柴谁输。请编写程序一个人机对弈程序,要求人先取,计算机后取,保证计算机为“常胜将军”即一直赢。
问题分析:
因为取得最后一根火柴的人为输且要保证电脑每次都赢,则最后一根火柴必须让人取得,这样就变成20根火柴只要保证20根火柴的最后一根被电脑取得就可以了,因为要求人先取火柴电脑后取,所以20根中只剩下5根时人先取,不管人取多少最后一根,必定落到电脑手中,依次类推15,10,直到一开始的5根火柴人先取,也是不管人取多少最后一根,必定落到电脑手中,所以只要保证每一轮的抽取中,人的取数+电脑的取数=5且每轮人先取,则最后的常胜将军必然是电脑

算法设计:
人先取数1~4根,显示火柴剩余数量,电脑再取数=5-(人取数1~4根),保证第5,10,15,20根都被电脑取走,则在总数21根中最后一根必然被人取走,如此电脑就是“常胜将军”
所以当火柴数为0时谁赢(但必然每次都是电脑赢)

#include<stdio.h>
void menu();
void game();
int main()
{
    int input = 0;
    do
    {
        menu();//菜单选择 
        scanf("%d", &input);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值