C ++中的二进制幂运算

时间:2018-10-23 01:53:28

标签: c++ algorithm

在我的实现下面查找二进制幂运算

isHidden

问题是,当我对输入num = 3和pow = 20运行时,得到-808182895,这是一个负数。我似乎无法弄清楚代码出了什么问题?我可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

3 ^ 20的值超过了最大可能的int值2 ^ 31,因此您发生了溢出。克服此限制的最简单方法是使用long long数据类型为最高功率为39(在2 ^ 63附近)的计算提供可能性

对于大功率,需要长整数运算-增强多精度,GMP等