我们得到一个整数n和一系列的第n项,如下所示:
null
Tn = n2 - (n-1)2
我们需要找到 N 国防部(10) 9 +7),在哪里 N 是给定级数的所有项的和,
Sn = T1 + T2 + T3 + T4 + ...... + Tn
例如:
Input : 229137999 Output : 218194447 Input : 344936985 Output : 788019571
在编写程序之前,让我们做一些计算。T N 可以简化为2n-1。让我们看看如何:
Given, Tn = n2 - (n-1)2 Or, Tn = n2 - (1 + n2 - 2n) Or, Tn = n2 - 1 - n2 + 2n Or, Tn = 2n - 1.
现在,我们需要找到∑T N .
∑T N = ∑(2n-1)
我们可以将上述公式简化为:, ∑(2n-1)=2*∑n-∑1 或∑(2n-1)=2*∑n–n。 哪里∑n是前n个自然数的和。
我们知道n个自然数的和=n(n+1)/2。
因此,把这个值放到上面的等式中,我们会得到,
∑T N =(2*(n)*(n+1)/2)-n=n 2.
现在n的值 2. 可以很大。所以不要直接平方n,取结果的模。我们将使用模乘的特性来计算平方:
(a*b)%k=((a%k)*(b%k))%k
# Python program to find sum of given # series. mod = 1000000007 def findSum(n): return ((n % mod) * (n % mod)) % mod # main() n = 229137999 print (findSum(n)) # Contributed by _omg |
输出:
218194447
请参阅完整的文章 求第n项为n^2–(n-1)^2的级数之和 更多细节!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END