解题思路:
注意事项:
题意是“排名为奇数的人说了假话”,所以多做一个字典方便找出我们判断的那个排列里面的某人的排名,找到这个人的排名再去判断他说的话是真是假。
参考代码:
from itertools import permutations a = [input() for _ in range(5)] a = list(map(lambda x: f"{x[0]}=={x[-1]}" if x[1] == '=' else x, a)) players, res = permutations("ABCDE"), 0 order = dict(zip([i for i in range(5)], "ABCDE")) for current_result in players: temp = [f"not {str(current_result.index(a[i][0]) + 1)}{a[i][1:]}" if (current_result.index(order[i]) + 1) & 1 else f"{str(current_result.index(a[i][0]) + 1)}{a[i][1:]}" for i in range(5)] if sum(int(eval(j)) for j in temp) == 5: res += 1 print(*current_result, sep='') print(res)
0.0分
1 人评分
【出圈】 (C语言代码)用单项循环链表浏览:766 |
最小公倍数 (C语言代码)浏览:856 |
字符串问题 (C语言代码)浏览:1476 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:623 |
WU-格式化数据输出 (C语言代码)浏览:1736 |
1642题解浏览:706 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:530 |
C语言程序设计教程(第三版)课后习题12.1 (C语言代码)浏览:641 |
printf基础练习 (C语言代码)浏览:1722 |
C语言训练-最大数问题 (C语言代码)浏览:584 |