蛇形填数(矩阵)

#include <bits/stdc++.h>

using namespace std;

int main() {

int a[10][10] = {0};

int n;

cin >> n;

int num = 1;

int bot = n - 1;

int top = 0;

int left = 0;

int right = n - 1;

while (n * n >= num) {

for (int i = top; i <= bot; i++) {

a[i][right] = num++;

}

right--;

if (top <= bot) {

for (int j = right; j >= left; j--) {

a[bot][j] = num++;

}

bot--;

}

if (right >= left) {

for (int i = bot; i >= top; i--) {

a[i][left] = num++;

}

left++;

}

for (int j = left; j <= right; j++) {

a[top][j] = num++;

}

top++;

}

for (int i = 0; i < n; i++) {

for (int j = 0; j < n; j++) {

cout << setw(4) << a[i][j];

}

cout << endl;

}

return 0;

}

相关推荐
爱学习的阿磊7 分钟前
C++与Qt图形开发
开发语言·c++·算法
历程里程碑10 分钟前
Linux 16 环境变量
linux·运维·服务器·开发语言·数据库·c++·笔记
历程里程碑29 分钟前
子串-----和为 K 的子数组
java·数据结构·c++·python·算法·leetcode·tornado
liu****43 分钟前
Qt进阶实战:事件处理、文件操作、多线程与网络编程全解析
开发语言·网络·数据结构·c++·qt
草原上唱山歌44 分钟前
C++如何调用Python代码
开发语言·c++·python
m0_706653231 小时前
跨语言调用C++接口
开发语言·c++·算法
一匹电信狗1 小时前
【高阶数据结构】并查集
c语言·数据结构·c++·算法·leetcode·排序算法·visual studio
PPPPPaPeR.1 小时前
从零实现一个简易 Shell:理解 Linux 进程与命令执行
linux·开发语言·c++
LXS_3572 小时前
C++常用容器(下)---stack、queue、list、set、map
开发语言·c++·学习方法·改行学it
愚者游世2 小时前
list Initialization各版本异同
开发语言·c++·学习·程序人生·算法