24个圈圈
来源:百度知道 编辑:UC知道 时间:2024/06/14 10:53:58
● ● ● ● ●
● ● ● ● ●
● ● ● ● ●
● ● ● 空 ●
这个图真的没有办法解开吗?
如果有,请告诉我.在此谢谢了!
做法:是只可以横\竖着画,不可以交叉和斜画..并且要一笔画完的哦!
智力骗局。
2004年我在前往福建的火车上遇到一个戴着眼镜斯斯文文的年轻IT行业人,他给我一道脑力题,题目如下:
1、把下面24个点用直线连接起来,不能斜连,连线不能超出点阵。
2、连过的点不能重复连线。
3、必须一笔画完中间不能让笔离开纸面。
4、连线不能穿过点阵的空白点位。
5、图形如下
X X X X X
X X X X
X X X X X
X X X X X
X X X X X
结果我回家连了N次都没有能连通,正在郁闷的时候,看到了一本C于是~
我的想法是,把点阵转换为矩阵。或者说把图形在平面坐标上表示出来
左下角为(1.1)
右下角为(5.1)
左上角为(1.5)
右上角为(5.5)
空白点位是(5.4)
每次连线移动只能是 X or Y +- 1而且XY都不能大于5且小于1且不能与前面连过的点重复
#include<stdio.h>
int all[6][6]={};
////这是把点转换为矩阵,为了和钜阵数字对应所以建立了6*6的矩阵其中有0的数组位置没有用
int i=0;
//////这个i是表明现在对try函数递归调用了多少次而没有出错,也就是按规律连接了多少个点(共24个点)
void try(int x,int y)
{
i=i+1;
all[x][y]=i;
if(i==24)shuchu(); ///如果有24次调用,那么存在全局变量all[][]里的数字正好是连线的顺序
if( x+1<=5 && all[x+1][y]==0 && (x+1!=5||y!=4))
{
try(x+1,y);
i=i-1; ///退出一次调用i需要