一个逻辑问题_张村说谎李村不说谎
来源:互联网 发布:python 科学计算 编辑:程序博客网 时间:2024/05/01 05:39
在论坛里看到一个逻辑题, 回答的人很多, 自己也试了下.
挺有意思的.
问题如下,
有两个村,张村和李村
张村的人星期一三五说谎
李村的人星期二四六说谎
一人问,今天周几?结果两个村的人都回答“前天是我说谎的日子”
问:今天是周几?
代码如下
public class TestLie {/** * @param args */public static void main(String[] args) {String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday","Friday", "Saturday", "Sunday"};boolean[] lieArray_zhang = {true, false, true, false, true, false, true};boolean[] lieArray_li = {false, true, false, true, false, true, true};Person zhang3 = new Person("zhang3", lieArray_zhang);Person li4 = new Person("li4 ", lieArray_li);for (int i = 0; i < 7; i++) {System.out.println("Today is " + days[i]);zhang3.say(i);li4.say(i);}}}class Person {String name;boolean[] lieArray;public Person(String name, boolean[] lieArray) {this.name = name;this.lieArray = lieArray;}public void say(int day) {int f = (day + 5) % 7;if (lieArray[day]) {// today is lie dayif (lieArray[f]) {System.out.println(" " + name+ " : The day before yesterday I not lay.");} else {System.out.println(" " + name+ " : The day before yesterday I lay.");}} else {// today is not lie dayif (lieArray[f]) {System.out.println(" " + name+ " : The day before yesterday I lay.");} else {System.out.println(" " + name+ " : The day before yesterday I not lay.");}}}}
其中周日没有特别说明是都说谎还是都不说谎, 但是对结果没有影响
可以修改lieArray的最后一个为false试试看
以上代码结果如下
Today is Monday zhang3 : The day before yesterday I lay. li4 : The day before yesterday I lay.Today is Tuesday zhang3 : The day before yesterday I lay. li4 : The day before yesterday I not lay.Today is Wednesday zhang3 : The day before yesterday I not lay. li4 : The day before yesterday I not lay.Today is Thursday zhang3 : The day before yesterday I not lay. li4 : The day before yesterday I not lay.Today is Friday zhang3 : The day before yesterday I not lay. li4 : The day before yesterday I not lay.Today is Saturday zhang3 : The day before yesterday I not lay. li4 : The day before yesterday I not lay.Today is Sunday zhang3 : The day before yesterday I not lay. li4 : The day before yesterday I lay.
论坛地址
http://bbs.csdn.net/topics/390294090
- 一个逻辑问题_张村说谎李村不说谎
- 一道逻辑题(关于张村李村说谎的)java实现
- 说谎
- 说谎
- C语言解决逻辑说谎问题
- 【逻辑题】是谁在说谎?
- 求解逻辑题谁在说谎?
- 66-甲说乙说谎,乙说丙说谎,丙说甲乙说谎
- 日志不说谎--Asp.net的生命周期
- 说谎不眨眼的五个星座
- 日志不说谎--Asp.net的生命周期
- 寂寞说谎
- 人工智能 a b c 说谎问题
- !HDU 4293 排队分组说谎问题-dp-(不相交区间的最大个数)
- 6.4趣味逻辑之谁来自说谎族,诚实族
- GOJ1446 并查集判断逻辑错误(是否说谎)
- 一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的,诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问?
- 一个岔路口分别通向诚实国和说谎国。 来了两个人,已知一个是诚实国的,另一个是说谎国的。 诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国, 但不知道应该走哪条路,需要问这两个人。请问应该怎么问?(
- Go-简洁的并发
- TRUNC函数
- ALSA 驱动框架和驱动开发 (一)
- openstack删除一个实例的流程及操作
- JNI及Android JNI 开发基本知识和具体操作步骤
- 一个逻辑问题_张村说谎李村不说谎
- ARM 内核分类
- 深入alloc_pages
- TreeView递归生成树(普通加载和快速加载、最快的是点一级加载子节点)
- 索引优点和缺点
- 关于在soupUI请求中传XML参数的问题
- 在sql中实现数组
- nm
- sockaddr与sockaddr_in,sockaddr_un结构体详细讲解