現有紅、黃、黑、白色球各一個,ios
放置在一個內編號一、二、三、4四個盒子中,每一個盒子放置一球, 它們的位置未知。
小李、小張和小劉的猜想以下:c++
小李認爲黑球編號1,黃球編號2;ide
小張認爲黑球編號2,白球編號3;spa
小劉認爲紅球編號2,白球編號4。 結果代表他們各猜對了一半。
據他們的猜想肯定四個色球在哪一個盒子?code
分析: blog
關鍵是「如何表示每一個人只說對了一個」,也就是說「一個表達式爲真,另外一個爲假」。 io
方法1:相與爲假,&& 相或爲真 ||event
方法2:兩個關係表達式的 和爲1 class
方法3:兩個關係表達式 不相等stream
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; }