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

第十六届蓝桥杯青少组C++省赛[2025.8.9]第二部分编程题(4、矩阵圈层交错旋转)

参考程序:

#include <bits/stdc++.h>
using namespace std;const int MAXN = 105;
int a[MAXN][MAXN];int main() {int n;if (!(cin >> n)) return 0;for (int i = 0; i < n; ++i)for (int j = 0; j < n; ++j)cin >> a[i][j];int layers = n / 2; // 每次处理一圈,外层到里层共有 floor(n/2) 层// 对每一层做 (right-left) 次四元循环替换for (int layer = 0; layer < layers; ++layer) {int top = layer;int left = layer;int bottom = n - 1 - layer;int right = n - 1 - layer;// 对当前圈上的每一个偏移 i 做一次 4 格循环替换for (int i = 0; i < right - left; ++i) {int rTop = top,        cTop = left + i;int rRight = top + i,  cRight = right;int rBottom = bottom,  cBottom = right - i;int rLeft = bottom - i, cLeft = left;if (layer % 2 == 0) {// 顺时针 90° (CW):左 -> 上, 下 -> 左, 右 -> 下, 上 -> 右int tmp = a[rLeft][cLeft];a[rLeft][cLeft]     = a[rBottom][cBottom];a[rBottom][cBottom] = a[rRight][cRight];a[rRight][cRight]   = a[rTop][cTop];a[rTop][cTop]       = tmp;} else {// 逆时针 90° (CCW):上 -> 左, 右 -> 上, 下 -> 右, 左 -> 下int tmp = a[rTop][cTop];a[rTop][cTop]       = a[rRight][cRight];a[rRight][cRight]   = a[rBottom][cBottom];a[rBottom][cBottom] = a[rLeft][cLeft];a[rLeft][cLeft]     = tmp;}}}// 输出结果for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {if (j) cout << ' ';cout << a[i][j];}cout << '\n';}return 0;
}

http://www.xdnf.cn/news/17984.html

相关文章:

  • MyBatis 动态数据源切换在 Spring Boot 环境下的实现方案
  • 【postgresql】一文详解postgresql中的统计模块
  • 云手机存储和本地存储的区别
  • C#WPF实战出真汁06--【系统设置】--餐桌类型设置
  • 【总结】Python多线程
  • 国内多光谱相机做得好的厂家有哪些?-多光谱相机品牌厂家
  • 硬件实现webrtc的编解码
  • 【2024前端实战综合练习】HTML+CSS+JavaScript 实现无穷可爱爱心喷射特效(含源代码解析 代码结构逻辑简析)
  • OpenCV 阈值处理
  • Flutter 以模块化方案 适配 HarmonyOS 的实现方法
  • 水环境遥感分析!R语言编程+多源遥感数据预处理;水体指数计算、水深回归分析、水温SVM预测、水质神经网络建模及科研级可视化制图
  • openwrt增加自定义网页
  • LeetCode热题100--146.LRU缓存--中等
  • 第40周——GAN入门
  • 动手学深度学习(pytorch版):第三章节—线性神经网络(4)softmax回归
  • strlen与传值传址调用
  • 设计模式(Design Patterns)
  • C++:stl-> list的模拟实现
  • 条件变量的基本介绍与有界缓冲区问题
  • 异步开发:协程、线程、Unitask
  • C语言——深入理解指针(四)
  • 获取农历日期
  • Jeecg后端经验汇总
  • strings命令和findstr命令验证iso文件中ntkrnlmp.exe系统版本
  • 如何避免网盘中资源被和谐?
  • LeetCode算法日记 - Day 12: 寻找旋转排序数组中的最小值、点名
  • Erlang notes[2]
  • Vue 侦听器(watch 与 watchEffect)全解析1
  • 图解软件知识库体系
  • GaussDB 常用数值类型