解题思路:通过while循环进行计算
注意事项:python和其他语言在精度上的问题
参考代码:
def fact(n): r=1 while(not n == 0): r=r*n n=n-1 return r def mypow(x,n): r=1 while(not n ==0): r=r*x n=n-1 return r list=[] list=input().split() x=float(list[0]) x1=int(float(list[0])) if x-x1 ==0: x=x1 n=int(list[1]) re=0 while(not n == 0): re=re+((mypow((-1),n-1))*(mypow(x,n)))/fact(n) n=n-1 print("{:.4f}".format(re))
该代码通过了50%的数据,然后我找了很久就是没找出来哪里出了问题,希望大神能帮忙解决一下,个人猜测是精度的问题,但是没找到合适的解决方法。
我输入66 66数据进行测试
别人的通过C代码的结果是: -1125488733849575900000000000.0000
然后我这个python的结果是: -1125488733849575338155180032.0000
严重怀疑是精度出现了问题,但是没找到解决方法,求解
0.0分
0 人评分
2006年春浙江省计算机等级考试二级C 编程题(2) (C++代码)直接打表啊8以上值不变hhh浏览:663 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:762 |
C语言训练-阶乘和数* (C语言代码)浏览:1060 |
破解简单密码 (C语言代码)浏览:1863 |
简单的a+b (C语言代码)浏览:528 |
字符串的输入输出处理 (C语言代码)浏览:1019 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1334 |
WU-输入输出格式练习 (C++代码)浏览:1133 |
简单的a+b (C语言代码)浏览:626 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:468 |