0

我有示例代码,必须填写缺失的部分。我的代码可以工作,但答案不正确。问题是求前十个自然数的平方和与和的平方之间的差。

我必须填写的地方是:

  • 括号中的 iostream
  • 命名空间后的std
  • 语句“int sumsqr = 1;”中的 sumsqr
  • for循环中int i的初始数字(我认为这是问题所在,不确定为什么使用“(N + 1)”,但这是在我们给出的代码中)
  • 语句 sumsqr += i * i 中的 *;
  • 语句中的 sum、sum 和 sumsqr 为解决方案设置值
  • cout 语句中的解决方案
#include <iostream>
using namespace std;

int main()
{
    int N = 10;
    int sum = 1;
    int sumsqr = 1;

    for (int i = 1; i < (N + 1); i++) {
        sum += i;
        sumsqr += i * i;
    }
    int solution = sum * sum - sumsqr;
    cout << solution;
    cin.get();
}

答案应该是 2640,但我得到的是 2750。

4

1 回答 1

1

您的总和从 1 开始。空总和为 0,而不是 1。更改此:

int sum = 1;
int sumsqr = 1;

对此:

int sum = 0;
int sumsqr = 0;

或者,如果由于某种原因不允许您更改该位代码,则可以将这些数字视为第一个数字的总和。在这种情况下,只需从第二个数字开始循环,因此更改int i = 1int i = 2.

于 2019-02-19T02:52:29.227 回答