嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
在一条街上有颜色互不相同的五栋房子,不同国籍的人分别住在这五栋房子力,每人抽不同品牌的香烟,喝不同的饮料,养不同的宠物。已知如下情况:
1. 英国人住红色房子里。
2. 瑞典人养狗。
3. 丹麦人喝茶。
4. 绿色房子坐落在白色房子的左面。
5. 绿色房子的主人喝咖啡。
6. 抽Pall Mall香烟的人养鸟。
7. 黄色房子的主人抽Dunhill香烟。
8. 挪威人住第一间房子。
9. 五座房子中间的那座的主人喝牛奶。
10. 抽Blends香烟的住在养猫人的隔壁。
11. 养马的人住在抽Dunhill香烟者的隔壁。
12. 抽Blue Master香烟的喝啤酒。
13. 德国人抽Prince香烟。
14. 挪威人住的房子在蓝色房子的隔壁。
15. 抽Blends香烟的人有一个喝水的邻居。
void run()
{
int i1, i2, i3, i4, i5;///通过逻辑条件顺序的有效选择来优化程序
for (i1 = 1; i1 <= 120; i1 )///房子
{
///9 、挪威人住第一间房子
///14 、挪威人住在蓝房子旁边
///不满足条件就短路
///
if (ALL[2, i1] != 2) continue;
for (int j = 0; j < 5; j , answer[j, 1] = ALL[j, i1]) ;
for (i2 = 1; i2 <= 120; i2 )///人种
{
for (int j = 0; j < 5; j , answer[j, 2] = ALL[j, i2]) ;
///9 、挪威人住第一间房子
if (ALL[1, i2] != 1) continue;
///1、 英国人住在红房子里
///
if (find(1, 4) != find(2, 2)) continue;
///4 、绿房子在白房子左边
///
if (find(1, 5) > find(1, 3)) continue;
for (i3 = 1; i3 <= 120; i3 )///烟
{
for (int j = 0; j < 5; j , answer[j, 3] = ALL[j, i3]) ;
///13、 德国人抽PRINCE烟
///
if (find(2, 3) != find(3, 2)) continue;
///7 、黄房子主人抽DUNHILL烟
///
if (find(1, 1) != find(3, 1)) continue;
for (i4 = 1; i4 <= 120; i4 )///饮料
{
for (int j = 0; j < 5; j , answer[j, 4] = ALL[j, i4]) ;
///8 、住在中间那间房子的人喝牛奶
///
if (ALL[3, i4] != 4) continue;
///5 、绿房子主人喝咖啡
///
if (find(1, 5) != find(4, 1)) continue;
///3 、丹麦人喝茶
///
if (find(2, 4) != find(4, 3)) continue;
///15 、抽混合烟的人的邻居喝矿泉水
if (Math.Abs(find(3, 3) - find(4, 2)) != 1) continue;
///12 、抽BLUE MASTER烟的人喝啤酒
///
if (find(3, 5) != find(4, 5)) continue;
for (i5 = 1; i5 <= 120; i5 )///宠物
{
for (int j = 0; j < 5; j , answer[j, 5] = ALL[j, i5]) ;
///10 、抽混合烟的人住在养鱼人的旁边
///
if (Math.Abs(find(3, 3) - find(5, 1)) != 1) continue;
///2 、瑞典人养了一条狗
///
if (find(2, 5) != find(5, 5)) continue;
///6 、抽PALL MALL烟的人养了一只鸟
///
if (find(3, 4) != find(5, 4)) continue;
///11 、养马人住在DUNHILL烟的人旁边
///
if (Math.Abs(find(5, 3) - find(3, 1)) != 1) continue;
///
///能活到这里的data,当然是答案喽
///
write_answer();
}
}
}
}
}
}