21根火柴,A和B每人每次可以取走1——4根,不可多取,也不可不取,取最后一根火柴者输,要求A先取,B后取。如何保证B永远是胜利者。
二、分析
即必须是B最后只留给A 1根火柴。也就是除了最后第21根火柴,之前的每一轮都必须保证A和B取到的火车数之和为5。
三、源码
#include <stdio.h>
2:
int main()
4: {
int A, B, nSpare = 21;
while (1)
7: {
, nSpare);
);
, &A);
if (A < 1 || A > 4 || A > nSpare)
12: {
);
continue;
15: }
16:
17: nSpare -= A;
if (nSpare == 0)
19: {
);
break;
22: }
23:
24: B = 5 - A;
25: nSpare -= B;
, B);
if (nSpare == 0)
28: {
);
break;
31: }
32: }
33:
34:
return 0;
36: }