您的位置:首页 > 其它

数学趣题——常胜将军

2010-05-26 08:57 225 查看

一、题目

21根火柴,A和B每人每次可以取走1——4根,不可多取,也不可不取,取最后一根火柴者输,要求A先取,B后取。如何保证B永远是胜利者。

二、分析

即必须是B最后只留给A 1根火柴。也就是除了最后第21根火柴,之前的每一轮都必须保证A和B取到的火车数之和为5。

三、源码

#include <stdio.h>
int main()
{
 int A, B, nSpare = 21;
 while (1)
{
 printf("当前还有%d根火柴\n", nSpare);
 printf("A:");
 scanf("%d", &A);
 if (A < 1 || A > 4 || A > nSpare)
{
 printf("A wrong\n");
 continue;
}
 nSpare -= A;
 if (nSpare == 0)
{
 printf("\n B win! Game over!\n");
 break;
}
 B = 5 - A;
 nSpare -= B;
 printf("B:%d \n", B);
 if (nSpare == 0)
{
 printf("\n A win! Game over!\n");
 break;
}
}
 return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: