編程題#2:四大湖
來源: POJ (Coursera聲明:在POJ上完成的習題將不會計入Coursera的最后成績。)
注意: 總時間限制: 1000ms 內存限制: 65536kB
描述
我國有4大淡水湖。
A說:洞庭湖最大,洪澤湖最小,鄱陽湖第三。
B說:洪澤湖最大,洞庭湖最小,鄱陽湖第二,太湖第三。
C說:洪澤湖最小,洞庭湖第三。
D說:鄱陽湖最大,太湖最小,洪澤湖第二,洞庭湖第三。
已知這4個湖的大小均不相等,4個人每人僅答對一個,
請編程按照鄱陽湖、洞庭湖、太湖、洪澤湖的順序給出他們的大小排名。
輸入
無。
輸出
輸出為4行,第1行為鄱陽湖的大小名次,從大到小名次分別表示為1、2、3、4;第2、3、4行分別為洞庭湖、太湖、洪澤湖的大小名次。
樣例輸入
(無)
樣例輸出
3
2
1
4
提示
樣例輸出僅供格式參考
1 #include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 int d,h,p,t, a[4];
//遍歷所有可能的四大湖排名情況 7 for(d=1; d<=4; d++) { 8 for(h=1; h<=4; h++) { 9 for(p=1; p<=4; p++) { 10 for(t=1; t<=4; t++) { 11 if((d!=h&&d!=p&&d!=t&&h!=p&&h!=t&&p!=t) //保證每個湖的排名大小不同 12 &&((d==3)+(h==1)+(p==2)+(t==4)==1) 13 &&((d==2)+(h==4)+(p==3)+(t==1)==1) 14 &&((h==3)+(t==4)==1) 15 &&((d==1)+(h==3)+(p==4)+(t==2)==1) 16 &&((d+h+p+t)==10)) { 17 cout << d << endl << h << endl << p << endl << t<< endl; 18 return 0; //好像有兩個可能答案,但是oj只接收一個,所以輸出第一個正確答案就夠了 19 } 20 } 21 } 22 } 23 } 24 return 0; 25 }
