日期:2025年10月6日
ZeroJudge 題目連結:f332. 貝瑞的鐵線體積
解題想法
如果函數為 $y = f(x)$,將此函數曲線以 $x$ 軸為轉軸旋轉,旋轉體體積為 $$ V = \pi \int_a^b y^2 dx $$
Python 程式碼
使用時間約為 22 ms,記憶體約為 3.4 MB,通過測試。
import math
t = int(input()) # 共 t 筆測資
for _ in range(t): # 執行 t 次
n = int(input()) # 多項式最高次方
poly = list(map(int, input().split())) # 多項式由高到低次方各項係數
square = [0]*(2*n + 1) # 多項式平方各項係數
for i in range(n+1):
for j in range(n+1):
square[i+j] += poly[i]*poly[j]
integral = [0]*(2*n + 1) # 平方後積分結果,忽略常數項
for i in range(2*n + 1): # 計算積分式
integral[i] = 1.0 * square[i] / (2*n + 1 - i)
ans = 0.0 # 積分結果
a, b = map(int, input().split()) # 積分下限、上限
for i, c in enumerate(integral): # 代入積分下限、上限
ans += c * (b**(2*n + 1 - i) - a**(2*n + 1 - i))
print(f"{math.pi*ans:.2f}") # 印出答案時再乘以 pi