当前位置: 首页 > news >正文

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.lryc.cn/news/248020.html

相关文章:

  • SparkSQL远程调试(IDEA)
  • Vue2 Vue3 响应式实现原理
  • Android Tombstone 与Debuggerd 原理浅谈
  • Matlab 三维电力线重建
  • GoLang Filepath.Walk遍历优化
  • Java面向对象第7天
  • 网络安全如何自学?
  • Flink-时间窗口
  • 软件设计模式原则(三)单一职责原则
  • 使用Postman创建Mock Server
  • 【古月居《ros入门21讲》学习笔记】15_ROS中的坐标系管理系统
  • 初始linux:文件操作
  • iOS上传ipa使用可视化工具Transporter
  • 解读《陆奇最新演讲实录—我的大模型世界观》
  • ChatGPT到底是如何运作?
  • 学习Java第57天,Servlet的基本使用步骤
  • 解决:ValueError: must have exactly one of create/read/write/append mode
  • 大数据-之LibrA数据库系统告警处理(ALM-37014 Gaussdb进程锁文件已经存在)
  • STM32 基础知识
  • JVM——产生内存溢出原因
  • 关于X86机器上运行GnuCobol的研究
  • open与openat的区别
  • 人工智能与供应链行业融合:预测算法的通用化与实战化
  • Cytoscape学习教程
  • computed和watch相关
  • 反思一次效能提升
  • ElasticSearch之cat indices API
  • Composer update 跳过指定依赖
  • @RequestMapping详解:请求映射规则
  • C#中密封类和密封方法