码迷,mamicode.com
首页 > 其他好文 > 详细

数字九宫格

时间:2015-03-05 06:57:31      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:数字九宫格   数据结构经典问题   

数字九宫格
九宫格就是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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!