五位跳水高手参加跳水比赛,A选手说:B第二,我第三。B选手:我第二,E第四。C选手:我第一,D第二。D选手:C最后,我第三。E选手:我第四,A第一 。成绩公布之后,每位选手的预测都只说对一半,求这次比赛的实际名次。
#include<iostream>
using namespace std;
int main() {
for (int a = 1; a < 6; a++)
for (int b = 1; b < 6; b++)
for (int c = 1; c < 6; c++)
for (int d = 1; d < 6; d++)
for (int e = 1; e < 6; e++)
if (a * b * c * d * e == 120) {//这里是保证了A,B,C,D,E的名次均不相等
int s1, s2, s3, s4, s5;
s1 = (b == 2) + (a == 3);
s2 = (b == 2) + (e == 4);
s3 = (c == 1) + (d == 2);
s4 = (c == 5) + (d == 3);
s5 = (e == 4) + (a == 1);
if ((s1&&s2&&s3&&s4&&s5)&&(s1+s2+s3+s4+s5==5))
{
cout << "A的名次是:" << a << endl;
cout << "B的名次是:" << b << endl;
cout << "C的名次是:" << c << endl;
cout << "D的名次是:" << d << endl;
cout << "E的名次是:" << e << endl;
}
}
return 0;
}