实现函数double Power(double base, int exponent),求base的 exponent次方。
不得使用库函数,同时不需要考虑大数问题。
注意: 不会出现底数和指数同为0的情况 当底数为0时,指数一定为正
样例1 输入:10 ,2 输出:100 样例2 输入:10 ,-2 输出:0.01时间复杂度O(n)
class Solution { public double Power(double base, int exponent) { if(exponent == 0){ return 1; } double num = 1; if(exponent > 0){ for(int i = 0;i < exponent;i++){ num *= base; } return num; } for(int i = 0;i > exponent;i--){ num /= base; } return num; } }时间复杂度O(logn)
class Solution { public double Power(double base, int exponent) { boolean flag = true; if(exponent < 0){ flag = false; exponent = -1 * exponent; } double res = 1; while(exponent != 0){ if((exponent & 1) != 0){ res = res*base; } exponent = exponent >> 1; base = base * base; } if(flag){ return res; } else return 1/res; } }