在本教程中,我們將學習如何使用 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」個自然數的平方和以及避免代碼溢出的兩種方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/238282.html