求大侠们给个答案参考参考吧,谢谢
地理课上老师给出一张没有说明省份的中国地图,从中选出五个省从1到5编号,要大家写出省份的名称。交卷后五位同学每人只答了二个省份的名称如下,且每人只答对了一个省,问正确答案是什么?
A 答:2号陕西,5号甘肃
B 答:2号湖北,4号山东
C 答:1号山东,5号吉林
D 答:3号湖北,4号吉林
E 答:2号甘肃,3号陕西
[解决办法]
由A和E,{2号陕西,3号陕西}或{2号陕西,2号甘肃}或{5号甘肃,2号甘肃}或{5号甘肃,3号陕西}
所以:{5号甘肃,3号陕西}正确,
5号和3号已确定,则:
由C:1号山东。
再由B:2号湖北。
再由D:4号吉林。
所以:
1号山东、2号湖北、3号陕西、4号吉林、5号甘肃。
[解决办法]
纵观全体,发现没有号码+地名相同的。所以,一人对一题的话一定需要一个特殊的突破口。
C 回答的1号山东是唯一的一个 选一号是山东的。所以,必然是正确的。C对一
通过山东是一号位那么5号吉林必是错的,同是吉林的还有4号吉林。D对一
通过吉林是4号位那么3号湖北必是错的,同是湖北的就是2号湖北。B对一
2号是湖北,就可以推敲出A和E的。既是5号甘肃,3号陕西。
结果一致 1号山东,2号湖北,3号陕西,4号吉林,5号甘肃。 比以上几位逻辑更合理
[解决办法]
main()
{
int x1,x2,x3,x4,x5;
for(x1=0;x1<6;x1++)
for(x2=0;x2<6;x2++)
for(x3=0;x3<6;x3++)
for(x4=0;x4<6;x4++)
for(x5=0;x5<6;x5++)
{
if((x1==2&&x2!=5||x1!=2&&x2==5)&&
(x3==2&&x5!=4||x3!=2&&x5==4)&&
(x5==1&&x4!=5||x5!=1&&x4==5)&&
(x3==3&&x4!=4||x3!=3&&x4==4)&&
(x2==2&&x1!=3||x2!=2&&x1==3)&&
x2!=x1&&x3!=x1&&x3!=x2&&x4!=x1&&x4!=x2&&x4!=x3&&
x5!=x1&&x5!=x2&&x5!=x3&&x5!=x4)
printf("%d %d %d %d %d\n",x1,x2,x3,x4,x5);
}
}
呵呵, 这个代码太繁琐了,能改一下吧?
x1,x2,x3,x4,x5分别代表陕西,甘肃,湖北,吉林,山东。