leetcode解题方案--050--pow(x,n)

来源:互联网 发布:jaycn淘宝店是谁开的 编辑:程序博客网 时间:2024/06/05 18:16

题目

Example 1:

Input: 2.00000, 10
Output: 1024.00000
Example 2:

Input: 2.10000, 3
Output: 9.26100

分析

我还以为这道题会考虑精度,然而并没有,
考虑一下算法复杂度就可以啦。

如果要求精度和范围的话,必须要考虑先扩大再缩小

class Solution {     public static double myPow(double x, int n) {        if (n == 0) {            return 1.0f;        }        if (x == 0) {            return 0f;        }        if (n == 1) {            return x;        }        if (n == -1) {            return 1 / x;        }        double half = myPow(x, n / 2);        double ret = half * half;        if (n % 2 != 0) {            ret = n > 0 ? half * half * x : half * half / x;        } else {        }        return ret;    }}