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: }

相关文章:

  • 2021-10-14
  • 2022-12-23
  • 2022-01-24
  • 2021-12-04
  • 2021-07-31
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-04
  • 2022-01-02
  • 2022-02-21
  • 2021-09-06
  • 2021-07-28
  • 2021-08-28
相关资源
相似解决方案