找凶手和猜名次问题

找凶手问题

 

题目如图。

 思路:我们先对凶手进行假设

 然后根据题目中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五人名词的真正顺序.

 

 最后运行结果为

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值