#include <iostream> using namespace std; /* 有两个村,张村和李村 张村的人星期一三五说谎 李村的人星期二四六说谎 一人问,今天周几?结果两个村的人都回答“前天是我说谎的日子” 问:今天是周几? */ //A 表示张村 B表示李村 ,返回0表示说谎,返回1表示说实话 int FindA(int nWeek) { if(nWeek == 1 || nWeek == 3|| nWeek == 5) return 0; return 1; } int FindB(int nWeek) { if(nWeek == 2 || nWeek == 4|| nWeek == 6) return 0; return 1; } int main() { for(int i = 1;i<8;i++) { int j=i-2; if(j<1) j+=7; if((FindA(i)!=FindA(j)) && (FindB(i)!=FindB(j))) cout<<"今天星期"<<i<<endl; } getchar(); return 0; }