⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aiyst.cpp

📁 据说是爱因斯坦提出的一个问题
💻 CPP
字号:
/*题目
  有五个具有五种不同颜色的房间;每个房间里分别住着一个不同国籍的人;
每个人都在喝一种特定品牌的饮料,抽一特定品牌的香烟,养一特定的宠物;
没有任意两个人在抽相同品牌的香烟,或喝相同品牌的饮料,或养相同的宠物。

  爱因斯坦给出了如下线索
  1.英国人住在红色的房子里;f_hong==g_ying
                              f_hong==g_ying&&g_rui==c_gou&&g_dan==y_cha&&f_lv==(f_bai-1)&&f_lv==y_ca&&x_pa==c_niao&&f_huang==x_du&&\
                              y_niu==3&&f_nuo==1&&x_ble==(c_mao+1)||x_ble==(c_mao-1)&&c_ma==(x_du+1)||c_ma==(x_du-1)&&x_blu==y_pi&&\
							  g_de==x_pr&&f_lan==2&&x_ble==(y_kuang+1)||x_ble==(y_kuang-1)

  2.瑞典人养狗作为宠物;g_rui==c_gou

  3.丹麦人喝茶;g_dan==y_cha

  4.绿房子紧挨着白房子,在白房子的左边;f_lv==(f_bai-1)

  5.绿房子的主人喝咖啡;f_lv==y_ca

  6.抽 Pall Mall 牌香烟的人养鸟;x_pa==c_niao

  7.黄色房子里的人抽 Dunhill 牌香烟;f_huang==x_du

  8.住在中间那个房子里的人喝牛奶;y_niu==3

  9.挪威人住在第一个房子里(最左边);f_nuo==1

  10.抽 Blends 香烟的人和养猫的人相邻;x_ble==(c_mao+1)||x_ble==(c_mao-1)

  11.养马的人和抽 Dunhill 牌香烟的人相邻;c_ma==(x_du+1)||c_ma==(x_du-1)

  12.抽 BlueMaster 牌香烟的人喝啤酒;x_blu==y_pi

  13.德国人抽 Prince 牌香烟;g_de==x_pr

  14.挪威人和住蓝房子的人相邻;f_lan==2

  15.抽Blends 香烟的人和喝矿泉水的人相邻;x_ble==(y_kuang+1)||x_ble==(y_kuang-1)

  爱因斯坦的问题是:谁在养鱼作为宠物?
*/

#include "stdio.h"
#include "string.h"

void main(void)
{
	int g_ying,g_de,g_dan,g_nuo,g_rui;//为国籍设置变量;
	int y_cha,y_ca,y_pi,y_kuang,y_niu;//为饮料设置变量;
	int f_hong,f_bai,f_huang,f_lan,f_lv;//为房子设置变量;
	int x_pa,x_du,x_ble,x_blu,x_pr;//为香烟设置变量;
	int c_gou,c_mao,c_ma,c_yu,c_niao;//为宠物设置变量;

	//设置变量存储国籍、宠物、房子、饮料、香烟的名称;
	int i;
	char g[6][6];
	char c[6][3];
	char f[6][6];
	char y[6][7];
	char x[6][12];

	printf("\n\n\t%s\t%s\t%s\t%s\t%s\t%s\n\n","序 号","国 籍","房 子","饮 料","香 烟  ","      宠 物");

	g_nuo=1;
	for(g_ying=2;g_ying<6;g_ying++)
	{
		if(g_ying==g_nuo)continue;
		for(g_rui=2;g_rui<6;g_rui++)
		{
			if(g_rui==g_nuo||g_rui==g_ying)continue;
			for(g_dan=2;g_dan<6;g_dan++)
			{
				if(g_dan==g_nuo||g_dan==g_ying||g_dan==g_rui)continue;
				for(g_de=2;g_de<6;g_de++)
				{
					if(g_de==g_nuo||g_de==g_ying||g_de==g_rui||g_de==g_dan)continue;
					//以上为国家分配
					y_niu=3;
					y_cha=g_dan;
					if(y_cha==3)continue;
					for(y_ca=1;y_ca<6;y_ca++)
					{
						if(y_ca==y_cha||y_ca==y_niu)continue;
						for(y_pi=1;y_pi<6;y_pi++)
						{
							if(y_pi==y_cha||y_pi==y_niu||y_pi==y_ca)continue;
							for(y_kuang=1;y_kuang<6;y_kuang++)
							{
								if(y_kuang==y_cha||y_kuang==y_niu||y_kuang==y_ca||y_kuang==y_pi)continue;
								//以上为饮料分配
								f_lan=2;
								f_hong=g_ying;
								if(f_hong==f_lan)continue;
								f_lv=y_ca;
								if(f_lv==f_hong||f_lv==f_lan)continue;
								f_bai=f_lv+1;
								if(f_bai<1||f_bai>5)continue;
								if(f_bai==f_hong||f_bai==f_lv||f_bai==f_lan)continue;
								for(f_huang=1;f_huang<6;f_huang++)
								{
									if(f_huang==f_hong||f_huang==f_lv||f_huang==f_bai||f_huang==f_lan)continue;
									//以上为房子分配
									x_du=f_huang;
									x_blu=y_pi;
									if(x_blu==x_du)continue;
									x_pr=g_de;
									if(x_pr==x_blu||x_pr==x_du)continue;
									for(x_ble=y_kuang-1;x_ble<y_kuang+2;x_ble+=2)
									{
										if(x_ble<1||x_ble>5)continue;
										if(x_ble==x_du||x_ble==x_blu||x_ble==x_pr)continue;
										for(x_pa=1;x_pa<6;x_pa++)
										{
											if(x_pa==x_du||x_pa==x_blu||x_pa==x_pr||x_pa==x_ble)continue;
											//以上为香烟分配
											c_gou=g_rui;
											c_niao=x_pa;
											if(c_niao==c_gou)continue;
											for(c_mao=x_ble-1;c_mao<x_ble+2;c_mao+=2)
											{
												if(c_mao<1||c_mao>5)continue;
												if(c_mao==c_gou||c_mao==c_niao)continue;
												for(c_ma=x_du-1;c_ma<x_du+2;c_ma+=2)
												{
													if(c_ma<1||c_ma>5)continue;
													if(c_ma==c_gou||c_ma==c_niao||c_ma==c_mao)continue;
													for(c_yu=1;c_yu<6;c_yu++)
													{
														if(c_yu==c_gou||c_yu==c_niao||c_yu==c_mao||c_yu==c_ma)continue;
														//以上为宠物分配;
														
														// 用相应位置的变量存储国籍、宠物等的名称;
														strcpy(g[g_ying],"英 国");
														strcpy(g[g_de],"德 国");
														strcpy(g[g_dan],"丹 麦");
														strcpy(g[g_nuo],"挪 威");
														strcpy(g[g_rui],"瑞 典");

														strcpy(c[c_gou],"狗");
														strcpy(c[c_mao],"猫");
														strcpy(c[c_ma],"马");
														strcpy(c[c_niao],"鸟");
														strcpy(c[c_yu],"鱼");

														strcpy(y[y_ca],"咖  啡");
														strcpy(y[y_cha],"  茶  ");
														strcpy(y[y_niu],"牛  奶");
														strcpy(y[y_kuang],"矿泉水");
														strcpy(y[y_pi],"啤  酒");

														strcpy(f[f_hong],"红 色");
														strcpy(f[f_bai],"白 色");
														strcpy(f[f_huang],"黄 色");
														strcpy(f[f_lan],"蓝 色");
														strcpy(f[f_lv],"绿 色");

														strcpy(x[x_du],"Dunhill    ");
														strcpy(x[x_ble],"Blends     ");
														strcpy(x[x_blu],"BlueMaster ");
														strcpy(x[x_pr],"Prince     ");
														strcpy(x[x_pa],"Pall Mall  ");

														//屏幕输出;
														for(i=1;i<6;i++)
														{
															printf("\t%3d\t%s\t%s\t%s\t%s\t%s\n\n",i,g[i],f[i],y[i],x[i],c[i]);
														}
														
														getchar();

													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -