#50299: 嘿嘿...我是第一名...Python解題...沒啥演算法,全是for/while loop。


abc1231334 (tl32m)

學校 : 長庚大學
編號 : 314314
來源 : [118.170.35.103]
最後登入時間 :
2025-08-19 00:53:50

原本我想說先用紙筆簡化一下算式,算一下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 += 1continue,繼續向後尋找。

----------------結果----------------
等到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]
    ....

#50345: Re: 嘿嘿...我是第一名...Python解題...沒啥演算法,全是for/while loop。


hansjiang1017@gmail.com (可以出題了!!!!!!!!!!!!!!!)

學校 : 不指定學校
編號 : 278037
來源 : [111.242.104.111]
最後登入時間 :
2025-08-06 18:37:22

原本我想說先用紙筆簡化一下算式,算一下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 += 1continue,繼續向後尋找。

----------------結果----------------
等到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]
    ....


其實有公式