zoukankan      html  css  js  c++  java
  • 100c之53:说谎族和诚实族

    Table of Contents

    问题

    说谎族和诚实族是两个不同的民族。说谎族永远说谎话,诚实族永远说实话。谜语博士是个聪明人他要发现谁是说谎族谁是诚实族。谜语博士问了三个人。第一个人说:我们中有两个来自诚实族。第二个人说:我们中有一个来自诚实族。第三个说:我们中有一个来自诚实族。 问:他们三个到底来自什么族?

    分析

    每个人说话只有可能状态:诚实或者说谎。

    程序

     1:  /**
     2:   * @file   053c.c
     3:   * @author Chaolong Zhang <emacsun@163.com>
     4:   * @date   Fri Jul 12 19:09:55 2013
     5:   * 
     6:   * @brief  说谎族和诚实族是两个不同的民族。说谎族永远说谎话,诚实族永远说实话。谜语博士是个聪明人他要发现谁是说谎族谁是诚实族。谜语博士问了三个人。第一个人说:我们中有两个来自诚实族。第二个人说:我们中有一个来自诚实族。第三个说:我们中有一个来自诚实族。
     7:   *  问:他们三个到底来自什么族?
     8:   * 
     9:   */
    10:  
    11:  #include <stdio.h>
    12:  #define N 2
    13:  
    14:  int main(int argc, char *argv[])
    15:  {
    16:      int a,b,c;
    17:  
    18:      for (a=0; a < N; ++a){
    19:          for (b = 0; b < N; ++b){
    20:              for (c = 0; c < N; ++c){
    21:                  if ( ( ( a&&( a+b+c==2 ) ) || ( !a &&( a+b+c!=2 ) )  ) &&
    22:                       ( ( b&&( a+b+c==1 ) ) || ( !b &&( a+b+c!=1 ) )  ) &&
    23:                       ( ( c&&( a+b+c==1 ) ) || ( !c &&( a+b+c!=1 ) )  )){
    24:                      printf ("a is %s
    ",a?"honest":"lie");
    25:                      printf ("b is %s
    ",b?"honest":"lie");
    26:                      printf ("c is %s
    ",c?"honest":"lie");
    27:                  }
    28:              }
    29:          }
    30:      }
    31:      return 0;
    32:  }
    

    结果

    a is lie
    b is lie
    c is lie  
    
  • 相关阅读:
    Sql Server 2008学习之第二天
    Sql Server 2008学习之第一天
    Codeforce 1175 D. Array Splitting
    CF1105C Ayoub and Lost Array ——动态规划
    数据结构——并查集
    动态规划——01背包问题
    常用技巧——离散化
    动态规划——稀疏表求解RMQ问题
    基础算法—快速幂详解
    欧拉函数及其扩展 小结
  • 原文地址:https://www.cnblogs.com/chaolong/p/3187087.html
Copyright © 2011-2022 走看看