解决数学公式的c ++问题

c++ problem with solving mathematic formula

我正在努力解决这个数学公式,我看不出我在哪里犯了错误。欢迎小提示。

using namespace std;
double sum, quo;
int n, i;
sum = 0;
quo = 1;
for (n = 1; n <= 5; n++) {

    sum = sum + quo;
}
for (i = 1; i <= 6; i++) {

    quo = quo * (n + i);
}
sum = sum + quo;

 cout << (sum);}

答案应该是569520,但在我的代码中是665285

我已经有一段时间没有做这种数学计算了,但我认为你的嵌套不正确。

我认为公式的意思是:

((1 + 1) * (1 + 2) * (1 + 3) ...)
+
((2 + 1) * (2 + 2) * (2 + 3) ...)
+
...

但是,你的求和循环只适用于 i=1。我认为这只是一个错误放置的支架。

for (n = 1; n <= 5; n++) {
    //The n loop should encompass the whole of the i loop
    //And you should only update sum at the end
    double quo = 1;
    for (i = 1; i <= 6; i++) {
        quo = quo * (n + i);
    }
    sum = sum + quo;
}

正如@Yksisarvinen 所说,

提示

公式中乘法在求和中

提示2

您可以在彼此内部使用 2 个 for 循环

到这里先自己试一下再回来看答案

答案:

#include <iostream>
#include <windows.h>
using namespace std;
int main() {
int sum, quo;
int n, i;
 sum = 0;
 quo = 1;
for (n = 1; n <= 5; n++) {
    for (i = 1; i <= 6; i++) {
            quo *= (n + i);

    }
    sum+=quo;
    quo =1;
}
 cout << (sum);
}