早教吧作业答案频道 -->其他-->
使用java写出一个穷举算法,分不多,求高人热心帮助警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。在审问时,A说:“我不是小偷”;B说:“C是小偷”;C说:“小偷肯定
题目详情
使用java写出一个穷举算法,分不多,求高人热心帮助
警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。在审问时,A说:“我不是小偷”;B说:“C是小偷”;C说:“小偷肯定是D”;D说:“C在冤
枉好人”。现在已经知道这四人中有三人说的是真话,一人说的是假话。请问到底谁是小偷?
求使用穷举法写出答案 要求有注释的
警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。在审问时,A说:“我不是小偷”;B说:“C是小偷”;C说:“小偷肯定是D”;D说:“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);
}
}
}
}
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);
}
}
}
}
看了 使用java写出一个穷举算法...的网友还看了以下:
若非空集合M⊆N={a,b,c,d},则M的个数为8个{a},{b},{c},{d},{a,b}, 2020-05-15 …
#includemain(){inta=0x7fffffff,b=025;floatf1=123. 2020-05-19 …
程序,数学小知识点解答证明:a可以表示成a=kb+r,则r=amodb假设d是a,b的一个公约数, 2020-06-11 …
线性代数问题证明:|1111||abcd||a²b²c²d²|=(a-b)(a-c)(a-d)(b 2020-06-12 …
ABCD中2个做好事,4人回答:A:CD做好事B:C做了,我没做C:A,D中只有一人做D:B说的是 2020-06-26 …
如图所示,我们常见有这样的杂技表演:四个人A、B、C、D体型相似,B站在A的肩上,双手拉着C和D,A 2020-10-31 …
一个系统有两个状态,处于A的概率为a,处于B的概率为b.A向B转化的概率为c,B向A转化的概率为d, 2020-11-03 …
有5个人A、B、C、D、E,其中A比B大2岁,B比C大2岁,C比D大2岁,D比E大2岁.E说他10岁 2020-11-17 …
两道初一数学的题目1.任给4个整数,a,b,c,d,说明:(a-b)(a-c)(a-d)(b-c)( 2020-11-17 …
判断下列命题的真假已知a,b,c,d∈R(1)若ac>bc,则a>b(2)若a>-b,则c-ab>c 2020-12-13 …