PTA: 螺旋矩阵

题目

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

格式

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

输出格式:
输出N×N的螺旋方阵。每行N个数字,每个数字占4位。

样例

输入样例:
5
输出样例:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

解答

#include <stdio.h>  int main() {  int n;  scanf("%d", &n);  int matrix[n][n];  int num = 1;  int row_start = 0;  int row_end = n - 1;  int col_start = 0;  int col_end = n - 1;  while (row_start <= row_end && col_start <= col_end) {  for (int col = col_start; col <= col_end && num <= n * n; col++) {  matrix[row_start][col] = num++;  }  row_start++;  for (int row = row_start; row <= row_end && num <= n * n; row++) {  matrix[row][col_end] = num++;  }  col_end--;  for (int col = col_end; col >= col_start && num <= n * n; col--) {  matrix[row_end][col] = num++;  }  row_end--;  for (int row = row_end; row >= row_start && num <= n * n; row--) {  matrix[row][col_start] = num++;  }  col_start++;  }  for (int i = 0; i < n; i++) {  for (int j = 0; j < n; j++) {  printf("%4d", matrix[i][j]);  }  printf("\n");  }  return 0;  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/178071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言加油站】函数栈帧的创建与销毁 #保姆级讲解

函数栈帧的创建与销毁 导言一、计算机硬件1.冯•诺依曼机基本思想2.冯•诺依曼机的特点&#xff1a;3.存储器3.1 分类3.2 内存的工作方式3.3 内存的组成 4.寄存器4.1 基本含义4.2 寄存器的功能4.3 工作原理4.4 分类4.4.1 通用寄存器组AX(AH、AL)&#xff1a;累加器BX(BH、BL)&a…

Git——Git应用入门

将会介绍以下知识&#xff1a; 搭建Git环境和创建Git版本库&#xff08;init、clone&#xff09;。文件添加、状态检查、创建注释和查看历史记录。与其他Git版本库交互&#xff08;pull、push&#xff09;。解决合并冲突。创建分支列表、列表切换和合并。创建标签。 1、版本控…

AI技术如何助力实现智慧交通

人工智能的常见优势在于能够实时、高效地分析处理大量的数据&#xff0c;并结合算法模型提供个性化、专业化的服务。在智慧交通方面&#xff0c;人工智能同样可以发挥专长&#xff0c;助力打造智能高效的交通运输网络&#xff0c;本篇就为大家简单介绍一下AI技术如何促进智慧交…

Linux基本命令二

Linux基本命令二 1、head 命令 head ​ **作用&#xff1a;**用于查看文件的开头部分的内容&#xff0c;有一个常用的参数 -n 用于显示行数&#xff0c;默认为 10&#xff0c;即显示 10 行的内容 ​ **语法&#xff1a;**head [参数] [文件] ​ 命令参数&#xff1a; 参数…

Java核心知识点整理大全20-笔记

目录 17. 设计模式 17.1.1. 设计原则 17.1.24. 解释器模式 18. 负载均衡 18.1.1.1. 四层负载均衡&#xff08;目标地址和端口交换&#xff09; 18.1.1.2. 七层负载均衡&#xff08;内容交换&#xff09; 18.1.2. 负载均衡算法/策略 18.1.2.1. 轮循均衡&#xff08;Roun…

js 循环哪种更快 for for..in.. forEach等

了解哪一种 for 循环或迭代器适合我们的需求&#xff0c;防止我们犯下一些影响应用性能的低级错误。 由 Artem Sapegin 上传至 Unsplash JavaScript 是 Web 开发领域的“常青树”。无论是 JavaScript 框架&#xff08;如 Node.js、React、Angular、Vue 等&#xff09;&#x…

数字人对本地生活商家的影响和应用

数字人的出现为本地生活商家带来了全新的机遇和挑战。让我们来了解一下什么是AI数字人是利用人工智能技术实现与真人直播形象的1:1克隆&#xff0c;即克隆出一个数字化的你自己&#xff0c;包括你的形象、表情、动作和声音都会被克隆下来&#xff0c;让你能够拥有接近真人的表现…

Java王者荣耀小游戏

Background类 package LX;import java.awt.*; //背景类 public class Background extends GameObject{public Background(GameFrame gameFrame) {super(gameFrame);}Image bg Toolkit.getDefaultToolkit().getImage("C:\\Users\\ASUS\\Desktop\\王者荣耀图片\\Map.jpg&…

postgis导致docker卡顿

fsync 强制把数据同步更新到磁盘,如果系统的IO压力很大&#xff0c;把改参数改为off 在fsync打开的情况下&#xff0c;优化后性能能够提升30%左右。因为有部分优化选项在默认的SQL测试语句中没有体现出它的优势&#xff0c;如果到实际测试中&#xff0c;提升应该不止30%。 测…

入侵redis之准备---Centos7上面部署redis

入侵redis之准备—Centos7上面部署redis 编写这个部署redis&#xff0c;只是为了另一个文章入侵redis做准备&#xff0c;网上还有好多类似的文章&#xff0c;这个单纯的就是部署安装&#xff0c;并简单的测试使用以下 关联其他文章 [1]VMware上面安装部署centos7镜像系统【详细…

地大与明道云的实践:零代码产教融合与协同育人

摘要 中国地质大学&#xff08;武汉&#xff09;与明道云合作&#xff0c;通过建设数字学院的方式&#xff0c;塑造教育数字化新动能。具体实践包括&#xff1a; 联合建设数字学院&#xff1a;选择经济管理学院作为试点&#xff0c;通过统筹规划、统一标准、分步实施的方式&a…

今日 LeetCode热题100--c++代码附思路

目录 1.最长连续序列 题目描述​编辑 通过代码 2.移动零 题目描述 通过代码 3.盛最多水的容器 题目描述 通过代码 1.最长连续序列 题目描述 通过代码 class Solution { public:int longestConsecutive(vector<int>& nums) {//排序&#xff0c;相同字母跳过…

2023年企业需要申请哪些管理体系证书!?

企业常用的管理体系认证包含ISO9001质量管理体系认证、SA8000社会责任管理体系认证、ISO14001环境质量管理体系认证、ISO45001职业健康安全管理体系认证、GB/T29490-2013知识产权管理体系认证等等。其主要作用为寻找第三方认证机构对企业的管理进行监督&#xff0c;帮助企业提升…

hive 命令记录(随时更新)

1.进入 hive 数据库&#xff1a; hive 2.查看hive中的所有数据库&#xff1a; show databases; 3.用 default 数据库 use default; 4.查看所有的表 show tables; 5.查询 book 表结构&#xff1a; desc book ; 6.查询 book 表数据 select * from book; 7.创建 shop 数据库 creat…

kafka如何保证消息不丢失 不重复消费 消息的顺序

如何保证消息的不丢失 消息为什么会丢失 想要保证消息不丢失就要首先知道消息为什么会丢失,在哪个环节会丢失,然后在丢失的环节做处理 1.生产者生产消息发送到broker,broker收到消息后会给生产者发送一个ack指令.生产者接收到broker发送成功的指令,这个时候我们就可以认为消息…

SpringBoot中如何优雅地使用重试

1 缘起 项目中使用了第三方的服务&#xff0c; 第三方服务偶尔会出现不稳定、连接不上的情况&#xff0c; 于是&#xff0c;在调用时为了保证服务的相对高可用&#xff0c;添加了超时连接重试&#xff0c; 当连接第三方服务超时时&#xff0c;多重试几次&#xff0c;比如3次&a…

GPTS-生成一个动漫图像GPT

介绍 GPTs是ChatGPT的定制版本,用户可以通过组合指令、知识和功能来定制用于特定任务或主题的GPT。它们可以根据需要简单或复杂,解决从语言学习到技术支持等各种事情。 创建GPTs Plus和Enterprise用户可以在chat.openai.com/create上开始创建GPTs。 您可以通过在ChatGPT上的…

「有问必答」秒杀系统 Go并发编程实践!

有问必答 摘要 本文将介绍如何使用Go语言的并发原语来构建一个简单的高并发秒杀系统。 我们将使用Go语言的原生库和一些常见的技术手段&#xff0c;包括互斥锁、通道、计数器等&#xff0c;来解决并发访问和数据一致性的问题。 本文只是一个简单的示例&#xff0c;重点是Go语…

ubuntu中root和普通用户切换方法

ubuntu登录后&#xff0c;默认是普通用户权限&#xff0c;那么普通用户权限和root权限如何切换呢&#xff0c;下面总结下它们之间如何切换。 普通用户切换到root用户 登录ubuntu后&#xff0c;按上组合键CTRLALTT进入终端界面&#xff0c;一般终端界面默认为普通用户权限模式…

MySQL数据库如何应对故障恢复与数据恢复回滚

一个最基本的数据库&#xff0c;应当可以做到以下几点 数据持久化&#xff0c;可以将数据保存到磁盘&#xff0c;服务重启数据依然存在。 可以按照某种关系存储数据&#xff0c;如果你用过IO流&#xff0c;那么你会发现整理数据也是一件复杂的事情。我是该追加写呢还是找到某条…