• 数学趣题——常胜将军


    一、题目

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

    二、分析

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

    三、源码

       1: #include <stdio.h>
       2:  
       3: int main()
       4: {
       5:     int A, B, nSpare = 21;
       6:     while (1)
       7:     {
       8:         printf("当前还有%d根火柴\n", nSpare);
       9:         printf("A:");
      10:         scanf("%d", &A);
      11:         if (A < 1 || A > 4 || A > nSpare)
      12:         {
      13:             printf("A wrong\n");
      14:             continue;
      15:         }
      16:  
      17:         nSpare -= A;
      18:         if (nSpare == 0)
      19:         {
      20:             printf("\n B win! Game over!\n");
      21:             break;
      22:         }
      23:  
      24:         B = 5 - A;
      25:         nSpare -= B;
      26:         printf("B:%d \n", B);
      27:         if (nSpare == 0)
      28:         {
      29:             printf("\n A win! Game over!\n");
      30:             break;
      31:         }
      32:     }
      33:  
      34:  
      35:     return 0;
      36: }
  • 相关阅读:
    python 字符编码
    python 模块 json
    python 命令空间
    python 装饰器
    ItemsControl Grouping分组
    WPF CanExecuteChanged
    WPF 控件树
    Bingding模型
    WCF中的AsyncPattern
    WPF中获取指定坐标依赖对象数据项
  • 原文地址:https://www.cnblogs.com/steven_oyj/p/1744096.html
Copyright © 2020-2023  润新知