猜球
现有红、黄、黑、白色球各一个,
放置在一个内编号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; }