首页 > 编程知识 正文

快速幂的时间复杂度,n为2的乘幂 求时间复杂度

时间:2023-05-05 10:32:53 阅读:225568 作者:3894

计算一个数的幂--时间复杂度O(logN)

解题思路:

把数字n转化为二进制数,从右向左扫描,如果是1,进行累乘,每次移位num*=num;

public static void main(String[] args) {int base=2;int n=10;int bitNum = getBitNum(base, n);System.out.println(bitNum);}/** * 计算一个数的n次方 时间复杂度O(logn) * @param base * @param n * @return */public static int getBitNum(int base,int n){int num=base;int temp=1;while(n!=0){if((n&1)==1){temp*=num;}num*=num;n>>=1;}return temp;}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。