当前位置 : 主页 > 网络编程 > 其它编程 >

求a^b的前n位

来源:互联网 收集:自由互联 发布时间:2023-07-02
求a^b的前n位其中a,b为整型,1 求a^b的前n位 其中a, b 为整型, 1 思路是a^b会很大,那么如果只需要前n位,那么我们可以把a^b除以10^x(10^x同样很大),这样就可以达到一个可以使用double(或long doubl
求a^b的前n位其中a,b为整型,1 求a^b的前n位

其中a, b 为整型, 1

思路是a^b会很大,那么如果只需要前n位,那么我们可以把a^b除以10^x(10^x同样很大),这样就可以达到一个可以使用double(或long double)表示的数据p,

p的前n位会与a^b的前n位相同.

那么当a^b的位数

当a^b位数>n时,取m log10(a^b) b*log10(a),m可以使用double表示.

a^b约等于pow(10.0,m).

但是对于m的整数部分x,10^x是10000形式,对我们所求的结果没有意义,那么可以只使用m的小数部分.

设mxy(x为整数部分,y为小数),

则10^y 10^(m-x) (10^m)/(10^x)(a^b)/(10^x), 即above讲的把a^b除以10^x.

ans 10^(n-1y).

习题:

HDOJ_1568

UVa_10236

UVa_11029

:-)

posted on 2011-09-21 13:01 Jackiesteed 阅读(...) 评论(...) 编辑 收藏

转:https://www.cnblogs.com/jackiesteed/articles/2183791.html

上一篇:什么是网络延时高呢
下一篇:没有了
网友评论