当前位置:首页GESP > 正文

累计相加:输入一个正整数n,求形如:1+(1+2)+(1+2+3)+(1+2+3+4)+……(1+2+3+4+5+……n)的累计相加。(2023年6月GESP认证真题 C++一级试题)

作者:野牛程序员:2024-07-28 10:18:57GESP阅读 3399
累计相加:输入一个正整数n,求形如:1+(1+2)+(1+2+3)+(1+2+3+4)+……(1+2+3+4+5+……n)的累计相加。(2023年6月GESP认证真题 C++一级试题)

2.累计相加

【问题描述】

输入一个正整数n,求形如:1+(1+2)+(1+2+3)+(1+2+3+4)+……(1+2+3+4+5+……n)的累计相加。

【输入描述】

输入一个正整数。约定1≤n≤100。

【输出描述】

输出累计相加的结果。

【样例输入 1】

3

【样例输出 1】

10

【样例输入 2】

4

【样例输出 2】

20

【样例输入3】

10

【样例输出 2】

220


方法一:


根据所提供的问题描述,可以编写一个C++程序来计算累计相加的结果。以下是实现该功能的C++代码:

#include <iostream>

int main() {
    int n;
    std::cout << "请输入一个正整数 n: ";
    std::cin >> n;

    int sum = 0;
    for (int i = 1; i <= n; ++i) {
        sum += (i * (i + 1)) / 2;
    }

    std::cout << "累计相加的结果是: " << sum << std::endl;

    return 0;
}

代码说明

  1. 输入部分:用户输入一个正整数n

  2. 累加计算:外层循环从1n,对于每个i,计算1+2+...+i的和,并累加到sum中。公式(i * (i + 1)) / 2是计算前i个整数和的标准公式。

  3. 输出结果:最后输出累积相加的结果。


方法二:

以下是不用公式,通过逐步累加每个序列的方法来实现累计相加的C++代码:

#include <iostream>

int main() {
    int n;
    std::cout << "请输入一个正整数 n: ";
    std::cin >> n;

    int sum = 0;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= i; ++j) {
            sum += j;
        }
    }

    std::cout << "累计相加的结果是: " << sum << std::endl;

    return 0;
}

代码说明

  1. 输入部分:输入一个正整数n

  2. 累加计算:使用双重循环。外层循环从1n,对于每个i,内层循环从1i,逐步累加jsum中。

  3. 输出结果:最后输出累积相加的结果。






野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • GESP
  • 最新推荐

    热门点击