網域名稱俱樂部

網域名稱俱樂部 (https://www.domainclub.org/index.php)
-   一般軟體與網路使用討論 (https://www.domainclub.org/forumdisplay.php?f=43)
-   -   算四大湖大小以及bool的問題 (https://www.domainclub.org/showthread.php?t=38552)

哈啦 2015-09-12 01:21 PM

算四大湖大小以及bool的問題
 
網路有一個求四大湖排名的問題如下:
引用:

我国有4大淡水湖。
A说:洞庭湖最大,洪泽湖最小,鄱阳湖第三。
B说:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。
C说:洪泽湖最小,洞庭湖第三。
D说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。
已知这4个湖的大小均不相等,4个人每人仅答对一个,
请编程按照鄱阳湖、洞庭湖、太湖、洪泽湖的顺序给出他们的大小排名。
我參考了網上的方法寫了如下的程式:

#include <iostream>
using namespace std;

int main(void){

int dt=0,hz=0,by=0,th=0;
int a=0,b=0,c=0,d=0;
//bool a=0,b=0,c=0,d=0;換成bool型態


for(dt=1;dt<=4;dt++){
for(hz=1;hz<=4;hz++){
for(by=1;by<=4;by++){
for(th=1;th<=4;th++)
{
//if((dt==by)||(dt==hz)||(dt==th)||(by==hz)||(by==th)||(hz==th)) continue;
a=((dt==1)+(hz==4)+(by==3));
b=((hz==1)+(dt==4)+(by==2)+(th==3));
c=((hz==4)+(dt==3));
d=((by==1)+(th==4)+(hz==2)+(dt==3));
if((a*b*c*d==1)&&(dt!=by)&&(dt!=th)&&(dt!=hz)&&(by!=hz)&&(by!=th)&&(hz!=th)) {

cout<<"DT is "<<dt<<" and BY is "<<by<<" and TH is "<<th<<" and HZ is "<<hz<<endl;

}
}
}
}
}
return 0;
}

以上的方法確實可以得出一組解答,但怪的是,如果我把紅字的部份變成 bool 型態,則以上的方法會得出二組答案?為何會如此? ~what

thanks 先


所有時間均為 +8。現在的時間是 02:18 AM

Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.