1. 程式人生 > >python sinx計算公式

python sinx計算公式

【問題描述】

已知sinx的近似計算公式如下:

 sin x = x - x3/3! + x5/5! - x7/7! + ... + (-1)n-1x2n-1/(2n-1)!

 其中x為弧度,n為正整數。編寫程式根據使用者輸入的x和n的值,利用上述近似計算公式計算sinx的近似值,要求輸出結果小數點後保留8位。

【輸入形式】

從控制檯輸入小數x(0<=x<=20)和整數n(1<=n<=5000),兩數中間用空格分隔。

【輸出形式】

控制檯輸出公式結果:小數點後保留8位。

【樣例輸入1】

0.5236  4

【樣例輸出1】

0.50000105

【樣例輸入2】

0.5236  50

【樣例輸出2】

0.50000106

【樣例說明】

輸入x為0.5236,n為4,求得sinx近似計算公式的值為0.50000105,小數點後保留8位;同樣,輸入x為0.5236,n為50,求得sinx近似計算公式的值為0.50000106,小數點後保留8位。

 

# sin x = x - x^3/3! + x^5/5! - x^7/7! + ... + (-1)^n-1 x^(2n-1)/(2n-1)!

x, n = input().split()
x = float(x)
n = int(n)

xiang = x
sign = 1
x_mici = x
jiechen = 1.0
sin_x = xiang
for i in range(2, n + 1):
    sign *= -1
    x_mici *= x * x
    jiechen *=  (2 * i - 1) * (2 * i - 2)
    xiang = sign * x_mici / jiechen
    sin_x += xiang

print("%.8f" % sin_x)