您的位置:首页 > 其它

POJ 1001 计算小数n次幂准确数值

2014-09-18 18:53 295 查看
1001 Exponentiation

计算小数n次幂准确数值

1.不能直接使用小数乘法,因为有省略小数位数

2.不能用整数乘法,数值可能超过long long的范围

解决方法:用数组存储,按位乘。

核心算法,按位乘法。

b的n次方乘法在计算过程中,有两值相乘且要存储结果,因此需要三个数组。优化?

10进制如下,其他进制将10替换

for(k=0; k<n-1; k++)
{
for(i = 0; i < ka; i++)
{
for(j = 0; j < kb; j++)
{
r[i + j] = r[i + j] + a[i] * b[j];
r[i + j +1] = r[i + j +1] + r[i + j]/10;
r[i + j] = r[i + j] % 10;
}
}
for(i = 0; i<ka; i++)
{
a[i] = r[i];
r[i] = 0;
}
}


源码地址:https://github.com/jianglj/POJ
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: