我正在寻找解决方案来求数字之和。给出的输入有 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/