各位大佬救救孩子吧!
题目给出了sinx的泰勒公式展开式, 要求脚本接受两个参数 x 与 y(两个都为正数)显示sinx的值
其中y 是精度值,即最后一项|t|<y
最终的结果包括最后一项
人家公式都给你了,剩下的就是写一个循环,每次判断第i个结果绝对值是都小于y就是了
import math
def factorial(n): # 计算n的阶乘
if n == 1:
return 1
else:
return n*factorial(n-1)
def sinx(x, y):
items = []
i = 0
while True:
item = (-1)**i * x**(2*i+1) / factorial(2*i+1)
if abs(item)>y:
items.append(item)
i += 1
else:
#print(items)
return sum(items)
x = float(input('请输入参数x:')) # math.pi/6=0.5235987755982988=30°
y = float(input('请输入参数y:'))
sinx(x, y)
math.pi是Π,可以通过Π来验证jiimport math,可以通过打印items来验证精度值