螺旋序列的输出

我的算法日常 — 螺旋数字串

描述

  • 输入n输入行列n个数字的矩阵
  • 形如
      10 11 12 1  
      9 16 13 2  
      8 15 14 3  
      7 6 5 4  
    螺旋递增序列

思路

  • 螺旋递增也就是,下–左–上–右–下递增
  • 也就是只有四种递增方向
  • 接着寻找每一种的递增截至的条件
  • 发现当且仅当x,y满足关于n和0的关系并且前面的数据还没有被赋值时

实现C代码

#include<stdio.h>  

#include<string.h>  

# define maxn 20  
int a[maxn][maxn];  
int main()  
{  
    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(int i = 0;i < n;i ++)  
    {  
        for(int j = 0;j < n;j ++)  
        {  
            printf("%d ", a[i][j]);  
        }  
        printf("\n");  
    }  
}  

   转载规则


《螺旋序列的输出》 ZS 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
深层神经网络 深层神经网络
第四周作业知识回顾步骤 初始化网络参数 前向传播 2.1 计算一层的中线性求和的部分 2.2 计算激活函数的部分(ReLU使用L-1次,Sigmod使用1次) 2.3 结合线性求和与激活函数 计算误差 反向传播
2019-04-09
下一篇 
判断完全平方数 判断完全平方数
我的算法日常—判断完全平方数思路 先对数据a进行开方的到b 之后b对其进行四舍五入,得到一个整数c 当且仅当 b==c 时 c**2 == a 所以就可以判断a是否为完全平方数了 分析 n 为存在某一整数 当b <
2019-04-02
  目录