给定正整数n 。任务是找到前n个自然数的平方和的和。
例子 :
Input : n = 3
Output : 20
Sum of square of first natural number = 1
Sum of square of first two natural number = 1^2 + 2^2 = 5
Sum of square of first three natural number = 1^2 + 2^2 + 3^2 = 14
Sum of sum of square of first three natural number = 1 + 5 + 14 = 20
Input : n = 2
Output : 6
方法1:O(n)的想法是找到第一个自然数的平方和,其中1 <= i <= n。然后将它们全部添加。
我们可以通过以下公式找到前n个自然数的平方和:n *(n + 1)*(2 * n + 1)/ 6
以下是此方法的实现:
C++
// CPP Program to find the sum of sum of
// squares of first n natural number
#include
using namespace std;
// Function to find sum of sum of square of
// first n natural number
int findSum(int n)
{
int sum = 0;
for (int i = 1; i <= n; i++)
sum += ((i * (i + 1) * (2 * i + 1)) / 6);
return sum;
}
// Driven Program
int main()
{
int n = 3;
cout << findSum(n) << endl;
return 0;
}
Java
// Java Program to find the sum of
// sum of squares of first n natural
// number
class GFG {
// Function to find sum of sum of
// square of first n natural number
static int findSum(int n)
{
int sum = 0;
for (int i = 1; i <= n; i++)
sum += ((i * (i + 1)
* (2 * i + 1)) / 6);
return sum;
}
// Driver Program
public static void main(String[] args)
{
int n = 3;
System.out.println( findSum(n));
}
}
// This code is contributed by
// Arnab Kundu
Python3
# Python3 Program to find the sum
# of sum of squares of first n
# natural number
# Function to find sum of sum of
# square of first n natural number
def findSum(n):
summ = 0
for i in range(1, n+1):
summ = (summ + ((i * (i + 1)
* (2 * i + 1)) / 6))
return summ
# Driven Program
n = 3
print(int(findSum(n)))
# This code is contributed by
# Prasad Kshirsagar
C#
// C# Program to find the sum of sum of
// squares of first n natural number
using System;
public class GFG {
// Function to find sum of sum of
// square of first n natural number
static int findSum(int n)
{
int sum = 0;
for (int i = 1; i <= n; i++)
sum += ((i * (i + 1) *
(2 * i + 1)) / 6);
return sum;
}
// Driver Program
static public void Main()
{
int n = 3;
Console.WriteLine(findSum(n));
}
}
// This code is contributed by
// Arnab Kundu.
PHP
Javascript
C++
// CPP Program to find the sum of sum of
// squares of first n natural number
#include
using namespace std;
// Function to find sum of sum of square
// of first n natural number
int findSum(int n)
{
return (n * (n + 1) * (n + 1) * (n + 2)) / 12;
}
// Driven Program
int main()
{
int n = 3;
cout << findSum(n) << endl;
return 0;
}
Java
// Java Program to find the sum of sum of
// squares of first n natural number
class GFG {
// Function to find sum of sum of
// square of first n natural number
static int findSum(int n)
{
return (n * (n + 1) *
(n + 1) * (n + 2)) / 12;
}
// Driver Program
public static void main(String[] args)
{
int n = 3;
System.out.println(findSum(n) );
}
}
// This code is contributed by Arnab Kundu
Python3
# Python3 Program to find the sum
# of sum of squares of first n
# natural number
# Function to find sum of sum of
# square of first n natural number
def findSum(n):
return ((n * (n + 1) * (n + 1)
* (n + 2)) / 12)
# Driven Program
n = 3
print(int(findSum(n)))
# This code is contributed by
# Prasad Kshirsagar
C#
// C# Program to find the sum of sum of
// squares of first n natural number
using System;
class GFG {
// Function to find sum of sum of
// square of first n natural number
static int findSum(int n)
{
return (n * (n + 1) * (n + 1)
* (n + 2)) / 12;
}
// Driver Program
static public void Main()
{
int n = 3;
Console.WriteLine(findSum(n) );
}
}
// This code is contributed by Arnab Kundu
PHP
Javascript
输出 :
20
时间复杂度:O(n)
辅助空间:O(1)
方法2:O(1)
数学上,我们需要找到Σ((i *(i + 1)*(2 * i + 1)/ 6),其中1 <= i <= n
所以,让我们解决这个总和,
Sum = Σ ((i * (i + 1) * (2*i + 1)/6), where 1 <= i <= n
= (1/6)*(Σ ((i * (i + 1) * (2*i + 1)))
= (1/6)*(Σ ((i2 + i) * (2*i + 1))
= (1/6)*(Σ ((2*i3 + 3*i2 + i))
= (1/6)*(Σ 2*i3 + Σ 3*i2 + Σ i)
= (1/6)*(2*Σ i3 + 3*Σ i2 + Σ i)
= (1/6)*(2*(i*(i + 1)/2)2 + 3*(i * (i + 1) * (2*i + 1))/6 + i * (i + 1)/2)
= (1/6)*(i * (i + 1))((i*(i + 1)/2) + ((2*i + 1)/2) + 1/2)
= (1/12) * (i * (i + 1)) * ((i*(i + 1)) + (2*i + 1) + 1)
= (1/12) * (i * (i + 1)) * ((i2 + 3 * i + 2)
= (1/12) * (i * (i + 1)) * ((i + 1) * (i + 2))
= (1/12) * (i * (i + 1)2 * (i + 2))
以下是此方法的实现:
C++
// CPP Program to find the sum of sum of
// squares of first n natural number
#include
using namespace std;
// Function to find sum of sum of square
// of first n natural number
int findSum(int n)
{
return (n * (n + 1) * (n + 1) * (n + 2)) / 12;
}
// Driven Program
int main()
{
int n = 3;
cout << findSum(n) << endl;
return 0;
}
Java
// Java Program to find the sum of sum of
// squares of first n natural number
class GFG {
// Function to find sum of sum of
// square of first n natural number
static int findSum(int n)
{
return (n * (n + 1) *
(n + 1) * (n + 2)) / 12;
}
// Driver Program
public static void main(String[] args)
{
int n = 3;
System.out.println(findSum(n) );
}
}
// This code is contributed by Arnab Kundu
Python3
# Python3 Program to find the sum
# of sum of squares of first n
# natural number
# Function to find sum of sum of
# square of first n natural number
def findSum(n):
return ((n * (n + 1) * (n + 1)
* (n + 2)) / 12)
# Driven Program
n = 3
print(int(findSum(n)))
# This code is contributed by
# Prasad Kshirsagar
C#
// C# Program to find the sum of sum of
// squares of first n natural number
using System;
class GFG {
// Function to find sum of sum of
// square of first n natural number
static int findSum(int n)
{
return (n * (n + 1) * (n + 1)
* (n + 2)) / 12;
}
// Driver Program
static public void Main()
{
int n = 3;
Console.WriteLine(findSum(n) );
}
}
// This code is contributed by Arnab Kundu
的PHP
Java脚本
输出:
20
时间复杂度:O(1)
辅助空间:O(1)