求和

GESP一级知识点循环练习,题目本身逻辑不复杂。但需要注意数据类型以及换行输出超时问题,一次做对也不容易。

luogu-B3650

题目要求

题目描述

输入一个整数 n(1n107)n(1\le n \le 10^7),每行输出一个数,表示数字 11ii 的和。

比如,当 n=5n=5 时,

第 1 行输出一个数字 1;

第 2 行输出数字 3,因为 1 + 2 = 3

第 3 行输出数字 6,因为 1 + 2 + 3 = 6

第 4 行输出数字 10,因为 1 + 2 + 3 + 4 = 10

第 5 行输出数字 15,因为 1 + 2 + 3 + 4 + 5 = 15

输入格式

输入一个数 n(1n107)n(1\le n \le 10^7)

输出格式

输出共 n(1n107)n(1\le n \le 10^7) 行,每行一个整数。

ii 行输出的数,表示数字 1 到 i 的和。

样例输入 #1

2

样例输出 #1

1
3

样例输入 #2

5

样例输出 #2

1
3
6
10
15

提示

对于 40%40\% 的数据,1n101\le n \le 10

对于 60%60\% 的数据,1n1041\le n \le 10^4

对于 80%80\% 的数据,1n1061\le n \le 10^6

对于 100%100\% 的数据,1n1071\le n \le 10^7


题目分析

  • 这是一道简单的累加问题。我们需要遍历从1到n的整数序列,并累加每个数。
  • 使用一个循环来遍历从1到n的整数序列,并在每次循环中累加当前数到总和中。
  • 最后,输出每个数的累加和。

提示:

使用 cout << endl; 输出换行会导致 TLE(超过时间限制)。

请使用 cout << "\n"; 或者是 printf("\n"); 输出换行。

1+2+3++100000001+2+3+\dots+10000000 的值超出了 int 类型可以存储的最大值。

{% include custom/custom-post-content-inner.html %}

示例代码

#include <cstdio>
#include <iostream>
using namespace std;
int main() {
    long long n; // 定义一个长整型变量n,用于存储输入的整数
    cin >> n; // 从输入流中读取n的值
    long long ans = 0; // 定义一个长整型变量ans,用于存储累加的和
    for (int i = 1; i <= n; i++) { // 循环从1到n
        ans += i; // 将当前数i加到ans上
        printf("%lld\n", ans); // 输出当前的累加和
    }
    return 0; // 返回0,表示程序执行成功
}

{% include custom/custom-post-content-footer.md %}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

luogu-”系列题目可在 洛谷题库 在线评测。

bcqm-”系列题目可在 编程启蒙题库 在线评测。

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
Last updated on