一架飞机载着5位运动员从奥林匹克运动会归来,这5位运动员在某个项目中排名第一到第五。他们说了下面这些话:
A:”我不是最后一名。”
B:”C是第三名。”
C:”A的排名在E后面。”
D:”E是第二名。”
E:”D不是第一名。”
处于谦虚或其他什么原因,金牌和银牌的得主都说了谎。那三个成绩相对较差的运动员倒说了真话。 他们的排名到底怎样?
public class Test { public static void main(String[] args) { int[] person = new int[6]; for (person[1] = 1; person[1] < 6; person[1]++) { for (person[2] = 1; person[2] < 6; person[2]++) { for (person[3] = 1; person[3] < 6;person[3]++) { for (person[4] = 1; person[4] <6; person[4]++) { for (person[5] = 1; person[5] < 6; person[5]++) { int sum = person[1] + person[2] + person[3] + person[4] + person[5]; int mul = person[1] * person[2] * person[3] * person[4] * person[5]; if (sum == 15 && mul == 120){ if (judge(person)){ System.out.printf("%d %d %d %d %d",person[1] , person[2] , person[3] , person[4] , person[5]); System.out.println(); } } } } } } } } public static boolean judge(int[] person){ boolean [] isTrue = new boolean [6]; isTrue[1] = person[1] != 5; isTrue[2] = person[3] == 3; isTrue[3] = person[1] > person[5]; isTrue[4] = person[5] == 2; isTrue[5] = person[4] != 1; for (int i = 1; i < 6; i++) { if (person [i] < 3){ isTrue[i] = !isTrue[i]; } } if (isTrue[1] && isTrue[2] && isTrue[3] && isTrue[4] && isTrue[5]) return true; return false; } } 作为程序员,当然是暴力破天下了,想起来那时候参加蓝桥杯的SB时光了