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

week1-[循环嵌套]蛇

week1-[循环嵌套]蛇

题目描述

给定正整数 nnnmmm,输出一个 nnnmmm 列的蛇形矩阵。具体输出格式参见样例。

输入格式

输入共 111222 个正整数 n,mn,mn,m

输出格式

输出共 nnn 行,每行 mmm 个用空格隔开的正整数表示答案。

样例 #1

样例输入 #1

4 4

样例输出 #1

1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13

提示

样例解释 111
 1 ->  2 ->  3 ->  4|v8 <-  7 <-  6 <-  5|v9 -> 10 -> 11 -> 12|v
16 <- 15 <- 14 <- 13

数据范围

对于所有数据,1≤n,m≤1001\leq n,m\leq 1001n,m100

题目解析:

要求输出一个 n×mn \times mn×m 的矩阵,按照“蛇形”顺序填充:

  • 第一行从左到右填充
  • 第二行从右到左填充
  • 第三行从左到右填充,依次交替
  • 数字从 1 开始递增

解题思路:

  1. 使用两层循环遍历矩阵行和列。
  2. 外层循环遍历行 i,内层循环遍历列 j
  3. 每行根据奇偶判断填充方向:
    • 偶数行(0、2、4…,从 0 开始)从左到右
    • 奇数行(1、3、5…)从右到左
  4. 维护一个递增的计数器 num,每输出一个数字加 1。
  5. 输出时,行内数字用空格隔开,每行结束换行。

C++实现:

#include <iostream>
using namespace std;int main() {int n, m;cin >> n >> m;int num = 1;for(int i = 0; i < n; i++) {if(i % 2 == 0) { // 偶数行从左到右for(int j = 0; j < m; j++) {cout << num;if(j != m - 1) cout << " ";num++;}} else { // 奇数行从右到左int start = num + m - 1;for(int j = 0; j < m; j++) {cout << start;if(j != m - 1) cout << " ";start--;}num += m;}cout << "\n";}return 0;
}
http://www.dtcms.com/a/333107.html

相关文章:

  • 低资源语言翻译:数据增强与跨语言迁移学习策略
  • git疑问,暂时记录
  • “降碳30%+节能25%,园区智慧能源管理系统重塑示范园区竞争力
  • Flutter Form组件的基本使用
  • 【Python办公】Excel转json(极速版)-可自定义累加字段(如有重复KEY)
  • 力扣top100(day04-06)--贪心算法
  • LeetCode 53.最大子数组和:贪心算法下的连续子数组最优解
  • Android项目中Ktor的引入与使用实践
  • mlir clone
  • 【C#补全计划】事件
  • 【C#】 GridControl与GridView、容器和视图
  • Spring事务 概念 配置 隔离级别 脏读幻读不可重复读 传播行为
  • pyinstaller-从安装到高级使用
  • align-content 设置侧轴上的子元素的排列方式(多行)
  • Git代码版本管理
  • OpenCV---getStructuringElement 结构元素获取
  • 设计心得——如何架构选型
  • ffmpeg 安装、配置与使用完全指南
  • 自学大语言模型之Transformer的Tokenizer
  • jenkins 自动部署
  • 开发Chrome/Edge插件基本流程
  • mysql中in 和 exists 区别
  • 从传感器到大模型:Jetson Thor + LLM.VLA + Holoscan 的边缘推理全链路实战
  • 基于改进Apriori算法的Web文档聚类方法研究(一)
  • 20250815给ubuntu22.04.5的系统缩小/home分区
  • Doris FE 应急恢复手册:六大经典故障场景与解决方案
  • WITRAN:基于改进的RNN时间序列预测模型
  • rent8 安装部署教程之 Windows
  • Effective C++ 条款43:学习处理模板化基类内的名称
  • 俄罗斯信封套娃问题-二维最长递增子序列