一、张三说李四在说谎,李四说王五说谎,王王说张三和李四都说谎,问...
张三,第一王五说张三李四都说谎,则可判定李四没有说谎,王五没有说谎,所以张三是唯一一个被指明说谎的人
二、c语言 张三说李四在说谎,李四说王五在说谎,王五说张三和李四...
张三、李四、王五都是假。真要这么问就是这么回答,因为编程语言就是这么执行的,执行到最后一步,我们不管是谁说,只要能运行就默认执行了,他说了那就是对了,执行到最后一步那就是最后一步了。我用编程语言简单表达:
//我初始化三个人,默认都没说谎
public const string s="没说谎";
public const string l="说谎";
public string 张三=s;
public string 李四=s;
public string 王五=s;
//开始告密事件
private void says()
{
李四=l; //说过了李四是说谎
王五=l; //说过了王五是说谎
张三=l; //说过了张三是说谎
李四=l; //再次赋值说过了李四还是在说谎
print 张三,李四,王五;
}
三、张三说李四说谎了,李四说王五说谎了,王五说张三和李四说谎了...
李四说的是真话理由:
假设张三说真话,则李四说王五说谎是假的,即王五说的是真话,与假设相冲突。
假设王五说真话,则张三说“李四在说谎”是假话,所以李四没说谎,而李四说的是“王五在说谎”,与假设冲突。
假设李四说真话,所以张三说的是假话,而王五说前两人都说谎,显然也是假话,因为李四说的是真话嘛!
特别强调:王五说“张三和李四都在说谎”的反命题是“张三和李四不都在说谎”而不是“张三和李四都不在说谎”。