sduzgz

蛇形矩阵别人的方法

 1#include <iostream>
 2#include <cmath>
 3const int MAX =  0xFF;
 4using namespace std;
 5int n;
 6int G[MAX][MAX];
 7int main(void)
 8{
 9        int i,j,n,cnt;
10        while(cin>>n)
11        {
12                cnt = 0;
13                memset(G,0,sizeof(G));
14                G[0][0= 1;
15                G[n-1][n-1= n*n;
16                int tx,ty;
17                cnt = 1;
18                for(i=1;i<n;i++)
19                {
20                        if(i%2 == 1)  //关于对角线对称的点一起得到,上半部分的从左上顶点值往后推,下半部分从右下顶点往前推
21                        {
22                                tx = i;ty = 0;
23                                G[i][0= G[i-1][0+ 1;
24                                while(tx > 0)
25                                {
26                                        G[--tx][++ty] = G[tx+1][ty-1+ 1;
27                                }

28
29                                tx = n-i-1;ty = n-1;
30                                G[tx][ty] = G[tx+1][ty] - 1;
31                                while(tx < n-1)
32                                {
33                                        G[++tx][--ty] = G[tx-1][ty+1- 1;
34                                }

35                        }

36                        else
37                        {
38                                tx = 0;ty = i;
39                                G[0][i] = G[0][i-1+ 1;
40                                while(ty > 0)
41                                {
42                                        G[++tx][--ty] = G[tx-1][ty+1+ 1;
43                                }

44
45                                tx = n-1;ty = n-i-1;
46                                G[tx][ty] = G[tx][ty+1- 1;
47                                while(ty < n-1)
48                                {
49                                        G[--tx][++ty] = G[tx+1][ty-1- 1;
50                                }

51                        }

52                }

53                for(i=0;i<n;i++)
54                {
55                        for(j=0;j<n;j++)
56                        {
57                                cout<<G[i][j]<<" ";
58                        }

59                        cout<<endl;
60                }

61
62        }

63        return 0;
64}

posted on 2010-09-01 09:54 sduzgz 阅读(304) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


My Links

Blog Stats

常用链接

留言簿

随笔档案

搜索

最新评论

  • 1. re: 素数查找
  • @李现民
    奥,茅塞顿开啊,谢谢啊!
  • --张爱静
  • 2. re: 素数查找
  • 评论内容较长,点击标题查看
  • --李现民
  • 3. re: 素数查找
  • 牛人啊,我这习惯确实很多问题啊,命名空间那个我可以明白,你说的prim[i]那个循环还有最后sqrt(N)拿到外面,改成那样有什么好处啊,虽然觉得好,但是不知道为什么。@李现民
  • --张爱静
  • 4. re: 素数查找
  • 评论内容较长,点击标题查看
  • --李现民
  • 5. re: 接口,虚函数及纯虚函数
  • 分得太细反而着了相, 不要太看重语法上的区别,这些东西都是基于应用而衍生的,多研究一些设计的东西, 比仔细区分这些语法概念要合算
  • --李现民

阅读排行榜

评论排行榜