微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 回溯法解题序

回溯法解题序

时间:12-01 来源:互联网 点击:
#include "stdafx.h"

#include "回溯推理.h"

//组合元素名称
char *YS[]={NULL,"红色","黄色","绿色","蓝色","白色"};
char *GJ[]={NULL,"挪威人","英国人","德国人","丹麦人","瑞典人"};
char *CW[]={NULL,"养狗","养猫","养鱼","养鸟","养马"};
char *YL[]={NULL,"喝 茶","喝牛奶","喝咖啡","喝啤酒","喝 水"};
char *YP[]={NULL,"抽Blends烟","抽BlueMaster烟","抽Dunhill烟","抽PallMall烟","抽Prince烟"};

TuiLi::TuiLi()
{
//初始化房子数组
int x;
for(x=0;x<5;x++)
{
Fz[x].ys=0;
Fz[x].gj=0;
Fz[x].cw=0;
Fz[x].yl=0;
Fz[x].yp=0;
}

}

TuiLi::~TuiLi()
{
}

void TuiLi::init_biao() //初始组合表
{
//组合标志
int a,b,c,d,e;
int x;
int i=0;
//生成一张12345的数字组合表
for (x=12345;x<=54321;x++)
{
e = x % 10;
d = x / 10 % 10;
c = x / 100 % 10;
b = x / 1000 % 10;
a = x / 10000 % 10;
if (a != b && a != c && a != d && a != e && b != c && b != d && b != e
&& c != d && c != e && d != e && a > 0 && a < 6 && b > 0 && b < 6
&& c > 0 && c < 6 && d > 0 && d < 6 && e > 0 && e < 6)
{
Biao[i][0]=a;
Biao[i][1]=b;
Biao[i][2]=c;
Biao[i][3]=d;
Biao[i][4]=e;
}
}
}

void TuiLi::print() //屏幕输出推理结果
{
GetLocalTime(&TIME);//获得系统当前时间
printf("推理结果获取时间为:%d年%d月%d日%d时%d分%d秒",TIME.wYear,TIME.wMonth,TIME.wDay,TIME.wHour,TIME.wMinute,TIME.wSecond);
printf("%s %s %s %s %s",YS[Fz[0].ys],GJ[Fz[0].gj],CW[Fz[0].cw],YL[Fz[0].yl],YP[Fz[0].yp]);
printf("%s %s %s %s %s",YS[Fz[1].ys],GJ[Fz[1].gj],CW[Fz[1].cw],YL[Fz[1].yl],YP[Fz[1].yp]);
printf("%s %s %s %s %s",YS[Fz[2].ys],GJ[Fz[2].gj],CW[Fz[2].cw],YL[Fz[2].yl],YP[Fz[2].yp]);
printf("%s %s %s %s %s",YS[Fz[3].ys],GJ[Fz[3].gj],CW[Fz[3].cw],YL[Fz[3].yl],YP[Fz[3].yp]);
printf("%s %s %s %s %s",YS[Fz[4].ys],GJ[Fz[4].gj],CW[Fz[4].cw],YL[Fz[4].yl],YP[Fz[4].yp]);
}
void TuiLi::gx()
{
int x;
int z=0;
for(x=0;x<5;x++)
{
Fz[x].ys=sz[z];
z++;
}
for(x=0;x<5;x++)
{
Fz[x].gj=sz[z];
z++;
}
for(x=0;x<5;x++)
{
Fz[x].cw=sz[z];
z++;
}
for(x=0;x<5;x++)
{
Fz[x].yl=sz[z];
z++;
}
for(x=0;x<5;x++)
{
Fz[x].yp=sz[z];
z++;
}

}

参考http://www.51hei.com/mcu/2640.html

和http://www.51hei.com/mcu/2641.html

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top