尝试找到num ^ num的前k个数字的问题我在C和
Python中编写了相同的程序
C
long double intpart,num,f_digit,k; cin>>num>>k; f_digit= pow(10.0,modf(num*log10(num),&intpart)+k-1); cout<<f_digit;
Python
(a,b) = modf(num*log10(num)) f_digits = pow(10,b+k-1) print f_digits
输入
19423474 9
产量
C++ > 163074912 Python > 163074908
我检查了结果,C解决方案是准确的.
在http://www.wolframalpha.com/input/?i=19423474^19423474上查看
任何想法如何在Python中获得相同的精度???
编辑:我知道外部库包获得这种精度,但任何NATIVE解决方案???
解决方法
Decimal是一个内置的python类,可以正确处理浮点数(作为基数10,而不是IEEE 7somethingsomething标准).我不知道它是否支持对数和所有这些.
编辑:确实是support logarithms “and all that”.
您也可以设置它的精度.默认值是28个位置,但它可以是您想要的大小.可以将其视为小数的BigInt.
原文地址:https://www.jb51.cc/c/111627.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。