2208C 求和

· · 题解

Source & Knowledge

2022年8月语言月赛,由洛谷网校入门计划/基础计划提供。

由「QQ红包」命题。

考察循环结构。

文字题解

题意简述

给出 n,输出 n 行,第 i 行输出 \sum_{j=1}^ij

关键代码

for 循环的代码格式如下

for( A; B; C) {
    D
}

其中,ABCD 代表一个代码块。

在进入 for 循环时,执行代码块 A,再执行代码块B,得到一个 bool 类型的结果,若为 true,则进行下一次循环,false,退出循环。循环语句 D 执行完毕后,执行语句 C,再进行 B 的判断,如此循环。

注意到 1+2+\cdots+10^7 大约答案为 5 \times 10^{13},超出了 int 范围,需要使用 long long 作为答案变量的类型。

long long ans = 0;
for(int i = 1; i <= n; i++) {
    ans += i;
    printf("%lld\n", ans);
    //cout << ans << "\n";
}

使用 printf 和 cout 输出均可,但 cout 不能用 endl 换行,否则会超时(速度慢)

视频题解