题干:在某班班委的选举中,已知王小红,李强,丁金生三人被选入班委会,该班三名同学的预言如下:
甲:王小红为班长,李强为生活委员。
乙:丁金生为班长,王晓红为生活委员。
丙:李强为班长,王小红为学习委员。
名单公布后,发现三人都恰好猜对一半,请问三名同学各任何职?
/*
本题中,使用w,l,d分别代表王小红,李强,丁金生。
使用0,1,2分别代表班长,生活委员,学习委员。
*/
public class Vote {
public static void main(String[] args) {
int w,l,d;
for(w = 0;w<=2;w++){
for(l = 0;l<=2;l++){
for(d = 0;d<=2;d++){
if((w==0&l!=1|w!=0&l==1)&(d==0&w!=1|d!=0&w==1)&(l==0&w!=2|l!=0&w==2)&(w!=d&d!=l&l!=w)){
System.out.println("王小红:"+select(w));
System.out.println("丁金生:"+select(d));
System.out.println("李强:"+select(l));
}
}
}
}
}
public static String select(int person){
if(person== 0){
return "班长";
}else if (person ==1 ){
return "生活委员";
}else{
return "学习委员";
}
}
}
最终运行结果为
与逻辑推理结果一致,得解。