【问题描述】
已知cosx的近似计算公式如下:
cosx = 1 - x2/2! + x4/4! - x6/6! + … + (-1)nx2n/(2n)!
其中x为弧度,n为大于等于0的整数。编写程序根据用户输入的x和n的值,利用上述近似计算公式计算cosx的近似值,要求输出结果小数点后保留8位。
【输入形式】
从控制台输入小数x(0<=x<=10)和整数n(0<=n<=1000),两数中间用空格分隔。
【输出形式】
控制台输出公式结果:小数点后保留8位。
【样例输入1】
1.0472 3
【样例输出1】
0.49996244
【样例输入2】
1.0472 49
【样例输出2】
0.49999788
【样例说明】
输入x为1.0472,n为3,求得cosx近似计算公式的值为0.49996244,小数点后保留8位;同样,输入x为1.0472,n为49,求得cosx近似计算公式的值为0.49999788,小数点后保留8位。
【评分标准】
共有5个测试点
'''
1.map(float, input().split())函数获取输入
2.判断n的大小
3.与sinx相同
4.注意n=0时的值
'''
def fun(m):
num = 1
for j in range(1, int(m) + 1):
num = num * j
return 1/num
x, n = map(float, input().split())
if n > 0:
cx = 1.0
for i in range(1, int(n) + 1):
c1 = pow((-1), i)
c2 = pow(x, 2*i)
c3 = fun(2 * i)
cx = cx + c1 * c2 * c3
print('%.8f' % cx)
elif n == 0:
print('%.8f' % (n + 1))