📌  相关文章
📜  C / C++程序,用于查找第n个项为n ^ 2 –(n-1)^ 2的级数之和

📅  最后修改于: 2021-05-28 03:23:45             🧑  作者: Mango

我们得到了一个整数n和第n个项,如下所示:

Tn = n2 - (n-1)2

我们需要找到S n mod(10 9 + 7),其中S 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并取结果的mod,不如直接对n求平方。我们将使用模块化乘法的属性来计算平方:

(a * b)%k =((a%k)*(b%k))%k

// CPP program to find sum of given
// series.
#include 
using namespace std;
  
#define mod 1000000007
  
// Function to find sum of series
// with nth term as n^2 - (n-1)^2
long long findSum(long long n)
{
    return ((n % mod) * (n % mod)) % mod;
}
  
// Driver code
int main()
{
    long long n = 229137999;
    cout << findSum(n);
    return 0;
}
输出:
218194447

有关更多详细信息,请参考完整的文章,查找具有第n个项的序列之和,即n ^ 2 –(n-1)^ 2。

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。