帮忙用java做一下这个算法题 张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。现在问:这三人中到底谁说的是真话,谁说的是假话? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有分析好麽?他的分析是错误的。逻辑我已经分析好了,代码实现遇到一些问题(要用java实现)。 分析没错吧 。A 张三B 李四C 王五 逻辑表达式 :A=!BB=!CC=!A&!B使这三个表达式都成立的ABC的值就是解。 楼上算法好~A说B说谎,B=true则A=false,B=false则A=true,所以A!=B 一个特别笨的方法,不要鄙视public class TestJavaDoc { public static void main(String[] args) { //0表示false,1表示true for(int i=0;i<=1;i++){ for(int j=0;j<=1;j++){ for(int k=0;k<=1;k++){ if(i==invert(j)&&j==invert(k)&&k==(invert(i)&invert(j))){ System.out.println(i+" "+j+" "+k); } } } } } public static int invert(int i){ return i^1; }} 由于张三和李四恒为相反,即:张三 ^ 李四 ≡ TRUE,所以王五一定是在说谎话。即:王五 ≡ false; A=!B B=!C C=!A&!B 分析了一下,假设:A是对的, 即:A=1 A=!B 成立 => !B=C 成立 => A=C 成立 => A=!A&!B =>A=!(!B)&!B = 0 (挂掉!这个组合行不通。) 假设:B是对的, B=1 B=!C 成立 => !C=!(!A&!B) => B=!(!A&!B) => !B=!A&!B => !A=1 (这个解释的通。B可以是0,也可以是1) 假设:C是对的,C=1 C=!A&!B 成立 =>!A=!(!B) 成立 =>C=!(!B)&!B => C=B&!B=0 (挂掉!这个组合行不通。) 如何设计时间日期类的hashcode() 关于静态的问题 几道考试题,帮忙看看答案! 在JB2005如何打好JAR包呢,小弟打包了之后运行没有反应!求救 帮忙看看这题 乱吗的问题????????? 比较难的问题--怎样处理矢量图形的滚动! 做个调查,大家说说都是那里人士!!! 送《java编程思想》(中文第二版)e书=100分 80分轻松就得——享受轻松的愉快和与人分享的快乐 请问jad允许的编码方式是什么?可以是GB2312吗? 小问题一个!!!
逻辑我已经分析好了,代码实现遇到一些问题(要用java实现)。
A 张三
B 李四
C 王五
逻辑表达式 :
A=!B
B=!C
C=!A&!B
使这三个表达式都成立的ABC的值就是解。
//0表示false,1表示true
for(int i=0;i<=1;i++){
for(int j=0;j<=1;j++){
for(int k=0;k<=1;k++){
if(i==invert(j)&&j==invert(k)&&k==(invert(i)&invert(j))){
System.out.println(i+" "+j+" "+k);
}
}
}
}
}
public static int invert(int i){
return i^1;
}
}
分析了一下,假设:A是对的, 即:A=1
A=!B 成立
=> !B=C 成立
=> A=C 成立 => A=!A&!B =>A=!(!B)&!B = 0
(挂掉!这个组合行不通。) 假设:B是对的, B=1
B=!C 成立
=> !C=!(!A&!B)
=> B=!(!A&!B)
=> !B=!A&!B => !A=1 (这个解释的通。B可以是0,也可以是1) 假设:C是对的,C=1
C=!A&!B 成立
=>!A=!(!B) 成立
=>C=!(!B)&!B => C=B&!B=0 (挂掉!这个组合行不通。)