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

for循环例题专题


一、语法

for 循环用于"已知大概循环次数"的重复任务。

基本语法:

cpp 复制代码
for (初始语句; 条件表达式; 变化语句) {
    循环体;
}

示例:输出 1 到 5

cpp 复制代码
for (int i = 1; i <= 5; i++) {
    cout << i << " ";
}

执行过程:

  1. 先执行 int i = 1(只执行一次);
  2. 判断 i <= 5,成立就进入循环体;
  3. 循环体执行后,执行 i++
  4. 再次判断条件,直到条件不成立。

初学者注意点

  1. 循环变量初始化、条件、步进要互相匹配。
  2. 小心边界:< n<= n 含义不同。
  3. 图形题常见规律是"第 i 行输出多少个字符"。

二、例题详解

例题1:数字直角三角形

题目描述

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

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

输入格式

输入一个正整数 n

输出格式

按题意输出数字直角三角形。

数据范围

1 <= n <= 13

输入输出样例

输入:

text 复制代码
5

输出:

text 复制代码
0102030405
06070809
101112
1314
15

思路讲解

这题每一行输出的数字个数在减少:

  • 第 1 行输出 n 个;
  • 第 2 行输出 n-1 个;
  • ...

所以可以把"行号"作为 for 循环变量,设为 i

再用第二层循环控制每行输出数量。

同时用 idx 记录当前要输出的数字,并在每次输出后 idx++

参考代码

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+2+3+...+n 的值。

输入格式

输入一个正整数 n

输出格式

输出一个整数,表示 1n 的和。

输入输出样例

输入:

text 复制代码
100

输出:

text 复制代码
5050

思路讲解

这题是 for 的标准入门题。

定义累加变量 s=0,然后让循环变量 i1 走到 n,每次把 i 加到 s 里:

  • 第 1 轮:s += 1
  • 第 2 轮:s += 2
  • ...
  • 第 n 轮:s += n

循环结束后输出 s 即可。

参考代码

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

int main() {
  int n;
  cin >> n;
  int s = 0;
  for (int i = 1; i <= n; i++) {
    s += i;
  }
  cout << s;
  return 0;
}

相关推荐
counting money1 小时前
Spring框架基础(依赖注入-半注解形式)
java·后端·spring
IOT那些事儿1 小时前
Qt5 VSCode调试
c++·vscode·mingw·qt5
染夕陌木1 小时前
RPC/服务调用框架中“方法无法应用到给定类型”错误的通用排查指南
java·ide·rpc
大大杰哥1 小时前
String常用方法
java
楼兰公子2 小时前
读取rpi摄像头
linux·服务器·算法
c++之路2 小时前
C++ 多线程
开发语言·c++
渡之2 小时前
NaviLoc - GNSS 拒止环境下无人机空对地卫星视觉定位算法 论文整理
算法·无人机·飞控
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题】【Java基础篇】第20题:HashMap在计算index的时候,为什么要对数组长度做减1操作
java·开发语言·数据结构·后端·面试·哈希算法·hash-index
嵌入式×边缘AI:打怪升级日志2 小时前
嵌入式Linux开发(了解交叉编译工具链的组成)
java·linux·运维