【C++】for循环嵌套例题专题

for循环嵌套例题专题


一、语法

当"重复里面还有重复"时,就要用循环嵌套。

基本结构:

cpp 复制代码
for (int i = 0; i < 行数; i++) {
    for (int j = 0; j < 列数; j++) {
        // 每个位置要做的事
    }
    cout << endl; // 一行结束后换行
}

理解方式:

  • 外层 i:控制行数,第几行;
  • 内层 j:控制列数,输出当前这一行里面都有些什么。

二、例题详解

例题1:数字直角三角形

题目描述

给出 n,输出一个直角边长度为 n 的数字直角三角形。

所有数字都要按 2 位输出,不足 2 位前导补 0

输入格式

一个正整数 n

输出格式

按题意输出图形。

输入输出样例

输入:

text 复制代码
5

输出:

text 复制代码
0102030405
06070809
101112
1314
15

思路讲解

  1. 首先我们分析一共有多少行,外层循环控制行数,共 n 行,所以我们需要一个变量来控制行数,这里我们使用变量 i
  2. 然后我们分析每一行要输出多少个数字,第 i 行要输出 n-i 个数字,所以内层循环写成 j < n - i
  3. 最后我们使用变量 idx 来维护当前数字,保证每输出一次就加 1。

参考代码

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

int n;
int main() {
  cin >> n;
  int idx = 1;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n - i; j++) {
      if (idx < 10) {
        cout << '0' << idx;
      } else {
        cout << idx;
      }
      idx++;
    }
    cout << endl;
  }
  return 0;
}

例题2:最长连号

题目描述

给定长度为 n 的整数序列,求其中最长的"连续递增 1"子段长度。

例如连续段满足后一个数等于前一个数加 1

输入格式

第一行输入一个整数 n

第二行输入 n 个整数,表示序列。

输出格式

输出一个整数,表示最长连号的长度。

输入输出样例

输入:

text 复制代码
10
1 5 6 2 3 4 5 6 8 9

输出:

text 复制代码
5

思路讲解

  1. cur 记录"当前连续段长度",ans 记录"历史最大长度";
  2. 每次读入新数字 x,判断是否满足 x == 上一个数 + 1
  3. 满足则 cur++,否则重置 cur=1
  4. 每轮都更新一次 ans

参考代码

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
  int n;
  cin >> n;

  int ans = 1;
  int cur = 1;
  int x, x2;

  cin >> x2;
  for (int i = 1; i < n; i++) {
    cin >> x;
    if (x == x2 + 1) {
      cur++;
      if (cur > ans) {
        ans = cur;
      }
    } else {
      cur = 1;
    }
    x2 = x;
  }

  cout << ans << endl;

  return 0;
}
相关推荐
fqbqrr1 小时前
2607C++,使用微软detours勾挂工具
c++
爱刷碗的苏泓舒1 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
维天说2 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
Zane19942 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
噢,我明白了3 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
吠品3 小时前
Zabbix Web界面误报Server未运行的排查与解决
java·服务器·数据库
啊湘3 小时前
天气查询API接口 按月Token鉴权 实时天气 物联网可用 文档齐全
java·后端·struts
Java内核笔记4 小时前
告别十亿美元的错误 : Spring Boot 4 空安全 (JSpecify) 实战
java·spring boot·后端
蓝悦无人机4 小时前
C++基础 — 函数总结
开发语言·c++
烬羽4 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法