#26882: 等差數列公式


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
b594. A Marvelous Pet | From: [27.246.4.142] | 發表日期 : 2021-08-30 15:37

這題可以看成差=1的等差數列,輸入測資total size就是等差數列的和。

設等差數列和為s,首項為a1,末項為an,差為d,項的數量是n
s=n(a1+an)/2=n(2a1+(n-1)*d)/2
因為d=1,s=n(2a1+n-1)/2=(2n*a1+n²-n)/2
a1=(2s-n²+n)/(2n)
所以只要寫個迴圈,n從2開始遞增,判斷a1是否是正整數即可。

至於n最大值是多少?
再看一次等差數列和公式s=(2n*a1+n²-n)/2
n能夠最大的情況就是a1=1的時候,所以
s=(n²+n)/2
n²+n-2s=0
n=(-1+-√(1+8s))/2
最大值就是(-1+√(1+8s))/2

 
ZeroJudge Forum