24点问题的程序实现
来源:互联网 发布:张小西日本代购 知乎 编辑:程序博客网 时间:2024/05/16 11:30
题目:
24点用一笔连起来但只能用横线和竖线进行连接,最右边第二行的圆圈处不能用线进行连接
如图所示:
思路:用递归实现,设计一个递归函数tf()进行查找下一个节点并连接以第一行第一列的点为(1,1)第二行第一列为(2,1)编好每个点的坐标,在tf函数中先查找于自身节点相邻的且可以连接的点然后进行连接,然后就以此节点为寻找下一可用结点直到tf()函数返回0,就返回。
编程实现:(在tc2.0中编译通过)
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
/*#include<windows.h>*/
#include <conio.h>
#include<dos.h>
int n=1,path[48];
int chack(int x1,int y1,int flag[6][6])
{
if(x1<=0||y1<=0||x1>5||y1>5||flag[x1][y1]==1)
return 0;
else
return 1;
}
int tf(int x1,int y1,int flag[6][6],int *n,int path[48])
{
int a[8]={0,0,0,0,0,0,0,0};int biaoji=0,i;
a[0]=x1-1;
a[1]=y1;
a[2]=x1;
a[3]=y1-1;
a[4]=x1+1;
a[5]=y1;
a[6]=x1;
a[7]=y1+1;
for (i=0;i<=3;i++)
{
if(chack(a[2*i],a[2*i+1],flag))
{
flag[a[2*i]][a[2*i+1]]=1;
/*printf("%d %d||",a[2*i],a[2*i+1]);*/
path[2*(*n)]=a[2*i];
path[2*(*n)+1]=a[2*i+1];
setcolor(10);
line(y1*30+10,x1*30+10,a[2*i+1]*30+10,a[2*i]*30+10);
*n=*n+1;
sleep(0.1);
if (!tf(a[2*i],a[2*i+1],flag,n,path))
{
if(*n==24)
{biaoji=1;break;}
else
{
*n=*n-1;
path[2*(*n)]=0;
path[2*(*n)+1]=0;
flag[a[2*i]][a[2*i+1]]=0;
setcolor(0);
line(y1*30+10,x1*30+10,a[2*i+1]*30+10,a[2*i]*30+10);
}
}else {biaoji=1;}
}
}
if(biaoji==1)
return 1;
else
return 0;
}
void main()
{
int j=1,i;
int flag[6][6];
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s/n",
grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
path[0]=1;path[1]=5;
setcolor(5);
setlinestyle(1,1,1);
setwritemode(0);
setfillstyle(SOLID_FILL, 5);
for(i=1;i<6;i++)
for(j=1;j<=5;j++)
{ if(i!=2||j!=5)
{
circle(j*30+10,i*30+10,3);
floodfill(j*30+10,i*30+10,5);
flag[i][j]=0;
}
}
flag[2][5]=1;flag[1][5]=1;
if(tf(1,5,flag,&n,path))
{
printf("ok");
}
else
printf("no");
getch();
closegraph();
}
- 24点问题的程序实现
- 24点问题的java实现
- 从易到难编写C++程序,(7)问题:利用问题(6)的发牌,实现24点游戏
- 纸牌24点,Python程序实现
- 算24点的程序
- 算24点程序:原理,面向过程的C实现,面向对象的java实现
- 打靶问题的程序实现
- 检测网站注入点的程序遇到的问题。
- 一个求24点所有可能解的VB源代码及程序实现
- 使用Olami SDK实现一个语音输入数字进行24点计算的iOS程序
- VS编译程序无法定位程序输入点的问题
- python实现的某网页模拟点赞程序
- Java程序实现根据经纬度计算GPS点的距离
- 24 点 Python 的实现
- python 的算24点程序
- 一个计算24点的程序
- 一个不错的24点计算程序
- 24点游戏的Matlab程序
- J2EE基础:对于Spring初学者的学习建议
- Visual Studio 2005-基于应用程序中使用 System.Net.mail.SmtpClient 类发送电子邮件时的錯誤
- 刀锋上的舞蹈
- 用VBA代码建立表间字段的关系
- 欧洲创新发布混合地图,超越 Garmin和Google显示技术
- 24点问题的程序实现
- SSDT Hook的妙用-对抗ring0 inline hook
- VB6应用系统的权限管理
- CRM下午茶(18)-中国企业需要CRM吗?
- 近期开发asp.net网站总结
- 求各科最高分的一个思路
- SOA系统成败的关键
- SQl 语句(常见) 新建,删除,修改表结构 purge recyclebin 清空DB回收站
- flash 一些常用类库工具收集