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需要