我有以下声明。
d = (pow(a,2*l+1)+1)/(val+1);
在这里,
val
,a
和l
是与问题无关的变量。 但最终答案 d 肯定会在long long
int范围之内。如何计算d
而不会失去准确性?我更喜欢答案而不将它们转换为数组并使用小学派乘法和除法。
答案 0 :(得分:0)
我现在没有时间写一个正确的答案;如果我有机会,我稍后会扩展它。基本思想是使用小学校算法,使用"数字"这是分母的力量。谷歌搜索" Schrage multiplication"或者查看here以获取参考资料。
答案 1 :(得分:0)
我希望操作数也是整数
我会通过平方而不是战争来使用权力
迭代#1
每次展位子结果和分母可以被2除以它们,以保持动力结果小而不失精度或结果的正确性。所以每次subresult和Denominator的LSB位都为0时,右移两位。