c - 求 sum(1)+sum(2)+....+(n) 的总和

标签 c math

我正在寻找解决方案来求数字之和。给出的输入有 n 个整数,问题是求 sum(1)+ sum(1+2) + sum(1+2+3) + ... + sum(1+2+) 的值的总和。 .+n)。我需要一个使用动态编程或任何数学计算的非常优化的解决方案。

int main()
{
    int sum = 0;
    int i = 0, n = 6;

    for( i = 1; i < n; i++ )
        sum = sum + findSumN( i );

    printf( "%d",sum );
}

最佳答案

您通常可以通过计算前几个项并使用结果搜索 On-Line Encyclopedia of Integer Sequences 来找到这样的级数公式。 .

1 = 1
1 + (1+2) = 4
4 + (1+2+3) = 10
10 + (1+2+3+4) = 20
20 + (1+2+3+4+5) = 35
35 + (1+2+3+4+5+6) = 56

您尝试计算的序列(1, 4, 10, 20, 35, 56, ...)是 A000292 ,其公式如下:

a(n) = n × (n + 1) × (n + 2) / 6

关于c - 求 sum(1)+sum(2)+....+(n) 的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44582632/

相关文章:

c++ - 是否可以将 PEX 与 C 一起使用?

c - 如何在C中的struct中添加元素

java - C 中的 eval 函数结果为负

java - 如何在 Java 中添加分数

python - 快速查找给定向量的字典向量。高维度

java - 为什么int 1的最小值比正值更远离零?

c - 卢阿 :new from C API

ISO C89 中的函数调用计数

c - 如何在 GadgetFS 中指定 HID 报告

javascript - 给定三个点创建两个平行平面(Javascript)