找凶手问题
题目如图。
思路:我们先对凶手进行假设
然后根据题目中ABCD四人所说的话语进行判断
结果如下
运行结果
猜名次问题
题目如图
思路:我们可以先将1-5名对应的创建出来
然后我们需要将A, B, C, D, E五个人的每种名词都列举出来如图先将获得第一名的人的可能性列举出来
然后分别是第二名.第三名.第四名以及最后一名。
但这样会导致某一名次有多个人拿到,所以我们可以这样如下这样修改
举例:当循环①拿到第一名的是A,并且拿到第二名的也是A此时就会执行break跳出当前的循环③进到循环②中让S++即让B拿到第二名。其他的if语句也是这种用途
最后我们可以根据题目给出的提示进行判断哪一种排列顺序是正确的
例如:
A说:B是第二名,我是第三名.
(当S == 'B' 成立时即为1反之则为0 T == 'A'也是如此,题目又说到每个人所说的话中有一句是真的有一句是假的,因此我们可以用两个表达式之和等于1来进行判断。)
B说:我是第三名,E是第四名
C说:我是第一,D是第二名
D说:C是第五名,我是第三名
E说:我是第四名,A是第一名
当某一ABCDE名词顺序符合上述表达式时。即为ABCDE五人名词的真正顺序.
最后运行结果为