计算1+2+...+(1+2+...+n)

img


为什么这样的两个循环不对呢?计算结果始终为0,不能理解哪错了?应该怎样修改呢?

#include <iostream>

using namespace std;

int main()
{
    int n;
    cout << "请输入一个数n=";
    cin >> n;
    int sum = 0, a = 0;
    for (int i = 1; i <= n; i++)
    {
        a += i;
        sum += a;
    }
    cout << "1 + (1+2) + ... + (1+2+3+...+n) = " << sum << endl;
    return 0;
}

12 行的 int a 删掉,你这样写,相当于在for循环重新定义了一个新的局部变量,这个a跟前面的a没关系