【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;
}
相关推荐
Suxing916 分钟前
C语言基础分享:从“租房”到“拆迁”,C语言动态内存管理
java·数据结构·算法
减瓦17 分钟前
别让 Java 版本选择变成生产事故
java
ikun_文17 分钟前
Java集合框架Collection拓展进阶
java·java ee
啦啦啦啦啦zzzz19 分钟前
moduo网络库 Acceptor TcpConnection
服务器·网络·c++·reactor·网络库
键盘会跳舞22 分钟前
C++:右值引用与移动语义源码级深度拆解——现代C++性能优化的语言基石
c++·右值引用·移动语义
码匠许师傅31 分钟前
【C++ 面试真题】聊聊 C++ 的虚函数和多态
java·c++·面试
LuminousCPP1 小时前
单链表专题(四)-刷题复盘篇-LeetCode 138 随机链表复制|原地拷贝法突破复杂指针操作
数据结构·笔记·算法·leetcode·链表
chuan.bai1 小时前
Java RAG 实战(第 8 篇):Spring Boot RAG 查询 API
java·spring boot·贪心算法
FlyWIHTSKY1 小时前
idea中集成claude功能
java·ide·人工智能·intellij-idea·cloudera
Java成神之路-1 小时前
Spring AI 统一结构化返回:ChatModel / ChatClient 两种实现方式
java·springaialibaba