*有两个村,张村和李村 张村的人星期一三五说谎 李村的人星期二四六说谎
*
* 一人问,今天周几?结果两个村的人都回答“前天是我说谎的日子”
*
* 问:今天是周几?
最近看到也在解这个题,面向过程的解法基本是熟悉了,正在尝试用面向对象来解决这个问题,但在构建村子类的时候卡了思路了,大家也尝试解解看,有没有什么好的思路一起共享。
下面是我的代码块,只是运行的结果是周日,不知道错在哪了,求大神帮忙查查
public class WhenLie {
public static void main(String[] args) {
Day day;
VillageA a;
VillageB b;
//对每一天进行判断,看前天是否都为说谎日
for (int i = 1; i <= 7; i++) {
day = new Day(i);
a = new VillageA(day);
b = new VillageB(day);
Day beforeYestoday = day.yestaday().yestaday();
boolean a_answer = a.answer(beforeYestoday);
boolean b_answer = b.answer(beforeYestoday);
if (!a_answer && !b_answer) {
System.out.println(i);
}
}
}
}
//A村构建一个类
class VillageA {
boolean isTellLie = true; //true代表说真话
//初始化判定当天是否说谎日
VillageA(Day day) {
if (day.id == 1 || day.id == 3 || day.id == 5) {
isTellLie = false;
}