在本教程中,我们将学习如何使用 Python 计算前n
个自然数的平方和。
我们有一个正整数“N”,我们的任务是计算(12+22+32+42+52+…+N2
示例:
Input: N = 6
Output: 91
12 + 22 + 32 + 42 + 52 + 62
= 1 + 4 + 9 + 16 + 25 +36
= 91
Input: N = 2
Output: 5
12 + 22
= 1 + 4
= 5
方法 1: O(N)
在这种方法中,用户必须运行从 1 到“N”自然数的循环,对于每个 K,1 <= K <= N。用户必须找到 K2 来计算总和。
示例:
# First, we will create a function
# which will return the sum of
# squares of first "NN"
# natural numbers
def square_sum(NN) :
# here, we will iterate K from 1
# and NN for finding
# the square numbers from K to NN and
# then add to sum.
sum_1 = 0
for K in range(1, NN + 1) :
sum_1 = sum_1 + (K * K)
return sum_1
# Driven Program
NN = int (input ("Please enter the 'N' natural number: "))
print (square_sum(NN)
输出:
Please enter the 'N' natural number: 56
60116
方法二: O(1)
在该方法中,用户可以通过使用以下公式来计算前“N”个自然数的平方和:
(NN * (NN + 1) * (2 * NN + 1)) / 6
例如:
For NN = 6, sum_1 = (6 * (6 + 1) * (2 * 6 + 1)) / 6
= (6 * (7) * (13)) / 6
= (546) / 6
= 91
For NN = 56, sum_1 = (56 * (56 + 1) * (2 * 56 + 1)) / 6
= (56 * (57) * (113)) / 6
= (3,60,696) / 6
= 60116
代码:
# First, we will create a function
# which will return the sum of
# squares of first "NN"
# natural numbers
def square_sum(NN) :
return (NN * (NN + 1) * (2 * NN + 1)) // 6
# Driven Program
NN = int( input("Please enter the 'N' natural number: "))
print (square_sum(NN))
输出:
Please enter the 'N' natural number: 87
223300
如何避免早期溢出:
对于大的“NN”自然数,值[(NN (NN + 1) (2 NN + 1)) / 6]可能会溢出。用户可以通过使用(NN (NN + 1))必须被 2 整除来避免这种情况。
示例:
# First, we will create a function
# which will return the sum of
# squares of first "NN"
# natural numbers
def square_sum(NN):
return (NN * (NN + 1) * (2 * NN + 1)) // 3
# Driven Program
NN = int( input("Please enter the 'N' natural number: "))
print (square_sum(NN))
输出:
Please enter the 'N' natural number: 567
121844520
结论
在本教程中,我们解释了使用 python 计算“N”个自然数的平方和以及避免代码溢出的两种方法。