警察抓到ABCD四个小偷C语言,使用java写出一个穷举算法,分不多,求高人热心帮助警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。在审问时,A说:“我不是小偷”;B说:“C是小偷”;C...

求加分,纯手打啊有木有……

public class Test {

/*

*

* 警察局抓住了A、B、C、D四名盗窃嫌疑犯,

* 其中只有一人是小偷。在审问时,A说:“我

* 不是小偷”;B说:“C是小偷”;C说:“小偷

* 肯定是D”;D说:“C在冤枉好人”。现在已经

* 知道这四人中有三人说的是真话,一人说的

* 是假话。请问到底谁是小偷?

*

* 即A说:thief != A;

* B说:thief == C;

* C说:thief == D;

* D说:thief != D;

*

* 先分别假设他们都是小偷,如果这个条件导致

* 四个人有三个说的是真话,一个人是假话

* 即abcd四人说的条件有三个成立,一个不

* 成立即为真相!

*/

public static void main(String[] args) {

char thief;//这个人是小偷

//abcd分别代表真假,0为假,1为真,count为条件成立的个数,count=3说明有是3个说的是真话,1个是假话

int a,b,c,d,count;

for(thief='A';thief<='D';thief++){//先假设小偷是A,然后循环假设

a=thief!='A'?1:0;

b=thief=='C'?1:0;

c=thief=='D'?1:0;

d=thief!='D'?1:0;

count=a+b+c+d;

if(count==3){

System.out.println("真正的小偷是"+thief);

}

}

}

}

解析看不懂?求助智能家教解答查看解答

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值