蛇形填数

蛇形填数

描述

在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 <iomanip>
using namespace std;

const int size = 101;
void matrix(int arr[size][size],int n)
{
    int m;
    int k = 0;
    if(n % 2 == 0)
        m = n / 2;
    else
        m = n /2 + 1;

    for(int i = 0;i <m; i++)
    {
        for(int j = i;j < n - i; j ++)
        {
            k ++;
            arr[j][n - i - 1] = k;

        }
        for(int j = n - i - 2; j>= i; j--)
        {
            k ++;
            arr[n - i - 1][j] = k;

        }
        for(int j = n - i - 2; j >=i; j--)
        {
            k ++;
            arr[j][i] = k;
        }
        for(int j = i + 1; j< n - i -1; j++)
        {
            k ++;
            arr[i][j] = k;
        }
    }
}
    int main()
    {
        int a[101][101];
        int value;
        cin>>value;
        matrix(a,value);
        for(int i = 0; i < value; i++)
        {
            for(int j = 0; j < value; j ++)
            {
                cout<<a[i][j]<<" ";
            }
            cout<<endl;
        }
        cout<<endl;

        return 0;
    }

        

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • A+B Problem(V)

    做了A+B Problem之后,Yougth感觉太简单了,于是他想让你求出两个数反转后相加的值。帮帮他吧

    书童小二
  • 1的个数

    小南刚学了二进制,他想知道一个数的二进制表示中有多少个1,你能帮他写一个程序来完成这个任务吗?

    书童小二
  • 公约数和公倍数

    描述小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。

    书童小二
  • Pascal三角形

    作者:bakari   时间:2012.8.4 Pascal三角形又称杨辉三角形,是多项式系数的一种规律展示,最早是由我国数学家杨辉发现,比Pascal早200...

    CloudDeveloper
  • P3717 [AHOI2017初中组]cover

    题目背景 以下为不影响题意的简化版题目。 题目描述 一个n*n的网格图上有m个探测器,每个探测器有个探测半径r,问这n*n个点中有多少个点能被探测到。 输入输出...

    attack
  • 10:矩阵转置

    10:矩阵转置 总时间限制: 1000ms 内存限制: 65536kB描述 输入一个n行m列的矩阵A,输出它的转置AT。 输入第一行包含两个整数n和m,...

    attack
  • CF: Long Number

    分析1:题目原文中有这么一句“You can perform the following operation no more than once: choose...

    _DIY
  • 2017-统计字符个数

    输入:输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。

    用户2038589
  • 武汉工程大学2020GPLT选拔赛(重现赛)详细代码讲解

    用户7727433
  • Day5上午解题报告

    预计分数:100+40+30=170 实际假分数:0+0+0=0 CE*3 实际真分数:60+50+0=110 老师没把我的程序放的文件夹里面,于是。。。。。 ...

    attack

扫码关注云+社区

领取腾讯云代金券