1160 蛇形矩阵

题目描述 Description

小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵以及其的对角线数字之和.

输入描述 Input Description

n(即n行n列)

输出描述 Output Description

n+1行,n行为组成的矩阵,最后一行为对角线数字之和

样例输入 Sample Input

3

样例输出 Sample Output

5 4 3
6 1 2
7 8 9
25
#include<stdio.h>
int map[100][100];
int main()
{
  int way[4][2]={{0,1},{-1,0},{0,-1},{1,0}};
  int n;
  scanf("%d",&n);
  int x,y,n_way=0,i=1,j,sum=0;
  int k1=0,k2=1,k3=0;
  x=n/2,y=n/2;
  while(x+y!=2*(n-1)){
    map[x][y]=i;
    if(x==y||(x+y)==n-1)
    sum+=i;
    i++;
    x+=way[n_way][0];
    y+=way[n_way][1];
    k1++;
    if(k1==k2){
      k1=0;
      k3++;
      n_way++;
      n_way%=4;
    }
    if(k3==2){
      k2++;
      k3=0;
    }
  }
  map[x][y]=i;
  sum+=i;
  for(i=0;i<n;i++){
    for(j=0;j<n;j++){
      printf("%d ",map[i][j]);
    }
    printf("\n");
  }
  printf("%d\n",sum);
  return 0;
}

参考代码

#include <stdio.h>
#include <string.h>
#define maxn 20
int a[maxn][maxn];
int main(int argc, const char * argv[]) {
    int n, x, y, tot = 0;
    scanf("%d",&n);
    memset(a, 0, sizeof(a));
    tot = a[x=0][y=n-1]=1;
    while (tot<n*n) {
        while(x+1<n && !a[x+1][y]) a[++x][y]=++tot;
        while(y-1>=0 && !a[x][y-1]) a[x][--y]=++tot;
        while(x-1>=0 && !a[x-1][y]) a[--x][y]=++tot;
        while(y+1<n && !a[x][y+1]) a[x][++y]=++tot;
    }
    for(x=0;x<n;x++){
        for(y=0;y<n;y++) printf("%3d",a[x][y]);
        printf("\n");
    }
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一前言 特征值 奇异值 二奇异值计算 三PCA 1)数据的向量表示及降维问题 2)向量的表示及基变换 3)基向量 ...
    Arya鑫阅读 11,071评论 2 43
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,314评论 19 139
  • 数学是计算机技术的基础,线性代数是机器学习和深度学习的基础,了解数据知识最好的方法我觉得是理解概念,数学不只是上学...
    闯王来了要纳粮阅读 23,206评论 2 48
  • 树形动态规划,顾名思义就是树+DP,先分别回顾一下基本内容吧:动态规划:问题可以分解成若干相互联系的阶段,在每一个...
    Mr_chong阅读 1,575评论 0 2
  • 有人说,这世间所有的相遇都是久别重逢,那些你并非刻意就不知不觉与之有了交集的人与事,大概只有一个解释——缘...
    桃子在寻找阅读 503评论 0 6

友情链接更多精彩内容