C++程序 不使用乘法(*)和除法(/)操作符来找到幂
方法1(使用嵌套循环):
我们可以通过重复加法来计算幂。
例如,计算5^6。
1)首先将5加5个,我们得到25. (5²)
2)然后将25加5次,我们得到125。(5³)
3)然后将125加5次,我们得到625(5^4)
4)然后将625加5次,我们得到3125(5^5)
5)最后将3125加5次,我们得到15625(5^6)
输出:
时间复杂度: O(a * b)
辅助空间: O(1)
方法2(使用递归):
递归地添加a以获得两个数的乘积。递归乘以获得a的幂b。
输出:
时间复杂度: O(b)
辅助空间: O(b)
方法3(使用位掩码):
我们可以将a^n(假设为3^5)表示为3^4 * 3^0 * 3^1 = 3^,所以我们可以将5表示为其二进制即101
时间复杂度: O(log n)
辅助空间: O(1)