zoukankan      html  css  js  c++  java
  • 【ACM】蛇形填数

    蛇形填数

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:3
     
    描述
    在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
    10 11 12 1
    9 16 13 2
    8 15 14 3
    7 6 5 4
     
    输入
    直接输入方陈的维数,即n的值。(n<=100)
    输出
    输出结果是蛇形方陈。
    样例输入
    3
    样例输出
    7 8 1
    6 9 2
    5 4 3
     
    #include <iostream>
    #include <cmath>
    #include <cstdio>
    
    using namespace std;
    
    int main(){
    
        int n;
        cin>>n;
        int **a = new int *[n];
        for (int i = 0; i < n ; i++)
        {
            a[i] = new int[n];
        }
        int sum = 1;
        int x = 0, y = n-1;
        int circle = 1;
        while (sum<n*n)
        {
            while (x<n-circle)    //down
            {
                a[x][y] = sum++;
                x++;
            }
            while (y>circle-1)
            {
                a[x][y] = sum++;
                y--;
            }
            while (x>circle-1)
            {
                a[x][y] = sum++;
                x--;
            }
            while (y<n-circle)
            {
                a[x][y] = sum++;
                y++;
            }
            x++;y--;
            circle++;
        }
        if (n%2!=0)
        {
            a[x][y] = n*n;
        }
        int i,j;
        for (i = 0 ; i < n ; i++)
        {
            for (j = 0 ; j < n-1; j++)
            {
                cout<<a[i][j]<<" ";
            }
            cout<<a[i][j]<<endl;
        }
    
        return 0;
    }        
  • 相关阅读:
    excel上传和下载
    SublimeText快捷键大全(附GIF演示图)
    JS求多个数组的重复数据
    js各种宽高(3)
    js各种宽高(2)
    js各种宽高(1)
    echarts简单使用案例
    js小技巧
    原生jdbc执行存储过程
    Cron和Spring定时任务
  • 原文地址:https://www.cnblogs.com/lyc94620/p/9646454.html
Copyright © 2011-2022 走看看