日期:2008-08-18 浏览次数:20493 次
现有题号称爱因斯坦出的智力题全世界只有2%能够做出。
------------------------------------------------
1、在一条街上,有5座房子,喷了5种颜色。
ProTable.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace SolvePuzzle
{
enum 国籍{英国,瑞典,丹麦,挪威,德国};
enum 颜色 {红,绿,蓝,黄,白};
enum 宠物 { 鸟,猫,马,鱼,狗};
enum 饮料 {水,牛奶,咖啡,茶,啤酒};
enum 香烟 { blends,blue,prince,dunhill,pall};
public class ProTable
{
private const string rule = @"
1、在一条街上,有5座房子,喷了5种颜色。
2、每个房里住着不同国籍的人
3、每个人喝不同的饮料,抽不同品牌的香烟,养不同的宠物
问题是:谁养鱼?
提示:
1、英国人住红色房子
2、瑞典人养狗
3、丹麦人喝茶
4、绿色房子在白色房子左面
5、绿色房子主人喝咖啡
6、抽Pall Mall 香烟的人养鸟
7、黄色房子主人抽Dunhill 香烟
8、住在中间房子的人喝牛奶
9、 挪威人住第一间房
10、抽Blends香烟的人住在养猫的人隔壁
11、养马的人住抽Dunhill 香烟的人隔壁
12、抽Blue Master的人喝啤酒
13、德国人抽Prince香烟
14、挪威人住蓝色房子隔壁
15、抽Blends香烟的人有一个喝水的邻居
";
public string Rule { get { return rule; } }
private enum T{国籍=0,颜色,宠物,饮料,香烟};
private const int N = 5;
//求排列
private static int[,] aid = new int[120, N];
static ProTable()
{
int k = 0;
for (int i0 = 0; i0 < N; i0++)
{
for (int i1 = 0; i1 < N; i1++)
{
if (i1 == i0) continue;
for (int i2 = 0; i2 < N; i2++)
{
if (i2 == i1 || i2 == i0) continue;
for (int i3 = 0; i3 < N; i3++)
{
if