当前位置: 首页 > 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.xdnf.cn/news/1304011.html

相关文章:

  • Vue2与Vue3生命周期函数全面解析:从入门到精通
  • Linux操作系统--多线程(锁、线程同步)
  • 基本电子元件:贴片电阻器的种类
  • 达梦数据库使用控制台disql执行脚本
  • Mac(二)Homebrew 的安装和使用
  • HDFS数据倾斜导致MapReduce作业失败的排查与优化实践
  • 一个集成多源威胁情报的聚合平台,提供实时威胁情报查询和播报服务、主动拦截威胁IP,集成AI等多项常用安全类工具
  • mac 通过homebrew 安装和使用nvm
  • 16进制pcm数据转py波形脚本
  • 超越模型中心:AI智能体(Agent)革命来临,AgenticOps将如何颠覆你的工作流?
  • Java-JVM是什么JVM的类加载机制
  • PAT 1064 Complete Binary Search Tree
  • 计算机网络:(十五)TCP拥塞控制与TCP拥塞控制算法
  • 【161页PPT】智慧方案企业数字化转型概述(课件)(附下载方式)
  • AutoSar AP平台功能组并行运行原理
  • [论文阅读] 人工智能 | 当Hugging Face遇上GitHub:预训练语言模型的跨平台同步难题与解决方案
  • JVM执行引擎深入理解
  • 剧本杀小程序系统开发:重构推理娱乐生态
  • 大模型幻觉涉及的违约责任探讨
  • 回路自感和回路互感
  • 补充日志之-配置文件解析指南(Centos7)
  • 德州扑克游戏术语
  • 银河麒麟服务器jar包部署自启动配置
  • 第十八讲:哈希2
  • 神经网络 小土堆pytorch记录
  • 开疆智能Ethernet转ModbusTCP网关连接测联无纸记录仪配置案例
  • 《探秘浏览器Web Bluetooth API设备发现流程》
  • 解决 MySQL 查询速度缓慢的问题
  • 前端更改浏览器默认滚动条样式
  • 13_集合框架