今天突然想起来以前有个四大湖的问题自己一直没做出来,蛮长时间了。正好拎出来做一做。
题目:
甲:洞庭湖最大,洪泽湖最小,鄱阳湖第三。
乙:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。
丙:洪泽湖最小,洞庭湖第三。
丁:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。
已知对于每个湖的大小,且每人仅说对了一个,写一个程序判断四个湖的大学排名。
直接暴力枚举法:
#include <iostream>
using namespace std;
int main()
{
int DT, HZ, PY, TH;
for(DT=1; DT<=4;DT++)
{
for(HZ=1;HZ<=4;HZ++)
{
for(PY=1;PY<=4;PY++)
{
for(TH=1;TH<=4;TH++)
{
if(DT==3&&HZ!=4)
{
if( ((DT==1)+(HZ==4)+(PY==3))==1 && ((HZ==1)+(DT==4)+(PY==2)+(TH==3))==1
&& ((PY==1)+(TH==4)+(HZ==2)+(DT==3))==1)
{
cout<<"洞庭湖名次为:"<<DT<<endl<<"洪泽湖名次为:"<<HZ<<endl<<
"鄱阳湖名次为:"<<PY<<endl<<"太湖名次为:"<<TH<<endl;
return 0;
}
}
else if(DT!=3 && HZ==4)
{
if( ((DT==1)+(HZ==4)+(PY==3))==1 && ((HZ==1)+(DT==4)+(PY==2)+(TH==3))==1
&& ((PY==1)+(TH==4)+(HZ==2)+(DT==3))==1)
{
cout<<"洞庭湖名次为:"<<DT<<endl<<"洪泽湖名次为:"<<HZ<<endl<<
"鄱阳湖名次为:"<<PY<<endl<<"太湖名次为:"<<TH<<endl;
return 0;
}
}
}
}
}
}
cout<<"所提供的信息有误"<<endl;
return 0;
}