zoukankan      html  css  js  c++  java
  • 螺旋方阵

    所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。

    输入格式:

    输入在一行中给出一个正整数N(<10)。

    输出格式:

    输出N×N的螺旋方阵。每行N个数字,每个数字占3位。

    思路:

    1. 按→方向填充,当数组元素值不是-1时,切换方向到 ↓

    2. 继续沿 ↓ 填充,当数组元素值不是-1时,切换方向为←

    3. 继续沿←填充,当数组元素值不是-1时,切换方向为 ↑

    4. 继续沿 ↑ 填充,当数组元素值不是-1时,切换方向为→(回到第1步)

    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>
    #include<string.h>
    int main()
    {
        int n, a[15][15]/*={0}*/;
        memset(a, 0, sizeof(a));//a内所有元素变为0
        scanf("%d", &n);
        int i = 1, j = 1, k = 1;
        while(k <= n * n)
        {
            while(j <= n)
            {
                if(!a[i][j])
                    a[i][j++] = k++;
                else break;
            }
            j--;
            i++;
            while(i <= n)
            {
                if(!a[i][j])
                    a[i++][j] = k++;
                else break;
            }
            i--;
            j--;
            while(j > 0)
            {
                if(!a[i][j])
                    a[i][j--] = k++;
                else break;
            }
            j++;
            i--;
            while(i > 0)
            {
                if(!a[i][j])
                    a[i--][j] = k++;
                else break;
            }
            i++;
            j++;
        }
        for(i = 1; i <= n; i++)
        {
            for(j = 1; j < n; j++)
                printf("%3d", a[i][j]);
            printf("%3d
    ", a[i][j]);
        }
        return 0;
    }
  • 相关阅读:
    数据库的视图概念作用
    常见的反爬虫和应对方法
    referrer policy
    JSON
    异步消息处理机制
    Acitivity(活动)
    springboot @Autowired 空指针异常问题处理
    CentOS7 宝塔 ThinkPHP SQLServer 2000 安装FreeTDS
    PHP THINKPHP 函数 dump var_dump var_export
    ThinkPHP5 WHERE AND OR 实现多条件查询
  • 原文地址:https://www.cnblogs.com/mayouyou/p/8650171.html
Copyright © 2011-2022 走看看