首页 > 技术文章 > 猜球

wc1903036673 2014-07-26 20:47 原文

 现有红、黄、黑、白色球各一个,

放置在一个内编号1、2、3、4四个盒子中,每个盒子放置一球,  它们的位置未知。
    小李、小张和小刘的猜测如下:

小李认为黑球编号1,黄球编号2;

小张认为黑球编号2,白球编号3;

小刘认为红球编号2,白球编号4。  结果表明他们各猜对了一半。
    据他们的猜测确定四个色球在哪个盒子?

 

 

 

分析:  

关键是“如何表示每个人只说对了一个”,也就是说“一个表达式为真,另一个为假”。

 

方法1:相与为假,&&       相或为真  ||

方法2:两个关系表达式的  和为1

方法3:两个关系表达式     不相等

 

 

 

nclude <iostream>
using namespace std;
int main( )
{     int a,b,c,d;
      for (a=1;a<=4;a++)
           for (b=1; b<=4; b++)
          for (c=1; c<=4; c++)
                 {     d=10-a-b-c;
                        if (   (c==1)!=(b==2) && (a==2)!=(d==3) 
                            && (a==2)!=(d==4)  && a!=b && a!=c
                            && a!=d && b!=c && b!=d && c!=d   )
                 printf("%d,%d,%d,%d\n",a,b,c,d); 
            } 
   system("pause");    return 1;
}
View Code

 

 

推荐阅读