第一个n个自然数平方和的Python计算程序
在本教程中,我们将学习如何使用Python计算前n个自然数的平方和。”
我们有一个正整数“N”,我们的任务是计算(1 2 + 2 2 + 3 2 + 4 2 + 5 2 +… + N 2 )
示例:
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。用户必须找到K的平方来计算总和。
示例:
# 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
方法2: 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”个自然数平方和的方法,并避免了代码溢出。