原本我想說先用紙筆簡化一下算式,算一下sigma平方和公式,整理出多項式。
但整理到一半,放棄,還是直接叫電腦幫忙計算平方和比較快。
----------------正文開始----------------
首先,先觀察規律。
總共有100行,記為第i
行。每一行的第一項為n
。
每一行用=
分成左右半邊。
>>> 左邊是 n
~ n+i
的平方和,左邊共有i+1
項。
>>> 右邊是 n+i+1
~ n+i*2
的平方和,右邊共有i
項。
----------------策略----------------
先創建一個result = []
來儲存結果。
創建一個變數n = 1
。
創建for i in range(1,101):
循環,計算第i
行的首項。
-使用while
循環,把n
帶進去算平方和。
--計算左邊的平方和left_sum
,以及右邊的平方和right_sum
。
--如果left_sum == right_sum
,那就result.append(n)
,然後break
。
--如果沒有的話,n += 1
,continue
,繼續向後尋找。
----------------結果----------------
等到for循環跑完之後,result
已經儲存了i=1~100,這100行的首項了。result
大概長這樣[3, 10, 21, 36, 55, 78, 105, 136, 171, ... ]
。
接下來就是要把結果print()
出來囉。
----------------輸出----------------
複習一下,總共有i=1~100,100行。每一行,左邊有i+1
項,右邊有i
項。
第i行的首項為a = result[i-1]
。
接著想辦法輸出指定的格式囉。像是這樣。21^2 + 22^2 + 23^2 + 24^2 = 25^2 + 26^2 + 27^2
。
我的策略是左邊的前i
項,print(f"{a}^2 + ",end="")
。第i+1
項則print(f"{a}^2 = ",end="")
。右邊以此類推。每次print()
一個項目之後,都要a += 1
。
----------------結構參考----------------
n = 1 #以下是把結果print出來 |
原本我想說先用紙筆簡化一下算式,算一下sigma平方和公式,整理出多項式。
但整理到一半,放棄,還是直接叫電腦幫忙計算平方和比較快。----------------正文開始----------------
首先,先觀察規律。
總共有100行,記為第i
行。每一行的第一項為n
。
每一行用=
分成左右半邊。
>>> 左邊是n
~n+i
的平方和,左邊共有i+1
項。
>>> 右邊是n+i+1
~n+i*2
的平方和,右邊共有i
項。----------------策略----------------
先創建一個result = []
來儲存結果。
創建一個變數n = 1
。
創建for i in range(1,101):
循環,計算第i
行的首項。
-使用while
循環,把n
帶進去算平方和。
--計算左邊的平方和left_sum
,以及右邊的平方和right_sum
。
--如果left_sum == right_sum
,那就result.append(n)
,然後break
。
--如果沒有的話,n += 1
,continue
,繼續向後尋找。----------------結果----------------
等到for循環跑完之後,result
已經儲存了i=1~100,這100行的首項了。result
大概長這樣[3, 10, 21, 36, 55, 78, 105, 136, 171, ... ]
。
接下來就是要把結果print()
出來囉。----------------輸出----------------
複習一下,總共有i=1~100,100行。每一行,左邊有i+1
項,右邊有i
項。
第i行的首項為a = result[i-1]
。
接著想辦法輸出指定的格式囉。像是這樣。21^2 + 22^2 + 23^2 + 24^2 = 25^2 + 26^2 + 27^2
。
我的策略是左邊的前i
項,print(f"{a}^2 + ",end="")
。第i+1
項則print(f"{a}^2 = ",end="")
。右邊以此類推。每次print()
一個項目之後,都要a += 1
。----------------結構參考----------------
n = 1
result = []
#計算i=1~100的首項
for i in range(1,101):
while True:
......
if left_sum == right_sum:
result.append(n)
break
else:
n += 1#以下是把結果print出來
for i in range(1,101):
a = result[i-1]
....
其實有公式