【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;
}

相关推荐
小羊没烦恼!14 小时前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
倒头就睡的小比特15 小时前
算法竞赛C++常用的STL
c++·算法
weilx123415 小时前
C++笔记-文件IO-<fcntl.h>
c++
俊昭喜喜里15 小时前
java中的继承和多态的区别
java
小羊没烦恼!15 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕15 小时前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码15 小时前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖15 小时前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时16 小时前
01-06-A-JVM排查实战详解
java·jvm
猎头南楼16 小时前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习