分析:既然有三个人说的是对的,那么我们只要逐个判断就可以了。
做法:先假设A说的是对的,然后判断是否与其他人的话是否存在矛盾,若最后恰好有三个人说的是对的那么分析结果是正确的,反之则是错误的。之后同样假设B即可,直至将4个人的话都假设完。
程序语言:1.我们采用循环的方式来存储凶手,先定义变量killer来存放A,B,C,D(因为这四个字母的ascll码值每个之间相差1,我们只要在出循环后加上1就行了)
2.因为要判断每个人说的话,我们就采用判断语句来书写。例如:A说的话我们可以这样书写:
killer !=A。B说的话可以这样书写:killer==C。以此类推即可。
3.最后一步是判断每一次每个人说的话是不是加起来刚好是有三句对的,一句错的。我们只要通过上一步的判断语句就可以,原因如下:假设判断为真,就输出1,反之就输出0。通过这一点,我们可以在每一次循环中利用这一点,统计每一次说话正确的人。只要加起来的结果是3的话,结果就是正确的。例如假设当A说对的时候:进入循环后,A说的话为错误的,那么也就是其他人说的话为真的,结果就是正确的,那么B、C、D说的话也为真,但是显然这样是矛盾的,也就是不成立。统计的结果也就是小于3。就像这样,循环往复就可以找出凶手。
4.最后是代码的呈现:
标签:killer,判断,假设,凶手,程序,的话,循环 From: https://blog.51cto.com/u_15923331/6065299