pascal 快速幂 怎么写?2^k

[复制链接]
查看11 | 回复2 | 2013-5-19 12:50:17 | 显示全部楼层 |阅读模式
function g(x:longint):longint;var now:longint;begin if x=0 then exit(1); now:=g(x shr 1); g:=now*now; if x and 1=1 theng:=g*2;end; 这是快速幂的模板,如果是高精度的话把g函数弄成数组就好了。其思想就是二分的思想。比如2^5=2*((2^2)^2)这样一直分解下去。...
回复

使用道具 举报

千问 | 2013-5-19 12:50:17 | 显示全部楼层
k的范围是什么?如果比较小可以用高精度乘以低精度的乘法。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行