数字九宫格
九宫格就是3*3的方格。把1~9填入九个方格中。要求水平、竖直、对角线方向上,每三个数字相加和都是15.求9个数字如何摆放?
这个题我们小学都玩过:
最简单的,最笨的方法是一个一个的尝试;
诀窍:
1.从第一列中间方格开始;
2.下一个数字应该“左上角”;
3.如果重复,则放到右边方格。
左出右入;上出下入
诀窍不单单适用于3*3的九宫格,像5*5,7*7,11*11等都适用。
数据结构分析:
二维数组,利用每维的下标来控制放置数字,利用诀窍判断下标。
将i放入方格a[x][y],i+1放入方格a[x1][y1]
左上角原则:x1=x-1; y1=y-1;
左出右入:x1=x-1; y1=2;
上出下入:x1=2; y1=y-1;
占位右移:x1=x; y1=y+1;
for(i=2;i<10;i++) { x1=x1; y1=y-1; if(y1<0) y1=2; if(x1<0) x1=2; if(a[x1][y1]!=0) { x1=x; y1=y+1; } a[x1][y1]=i; x=x1; y=y1; }
原文地址:http://zlfwmm.blog.51cto.com/5892198/1617439