zoukankan      html  css  js  c++  java
  • Pow(x, n)

    Implement pow(xn).

     1 public class Solution {
     2     public double pow(double x, int n) {
     3         // Start typing your Java solution below
     4         // DO NOT write main() function
     5         for(int i = 1; i < n; i ++)
     6         {
     7             x *= x;
     8         }
     9         return x;
    10     }
    11 }

    不过大数据过不了。。

    应该用二分法,感觉很多数学题都是用二分来做的, 同时还要注意n小于0的情况。

     1 public class Solution {
     2     public double pow(double x, int n) {
     3         // Start typing your Java solution below
     4         // DO NOT write main() function
     5         if(n < 0) return 1.0 / power(x, -n);
     6         else return power(x, n);
     7     }
     8     public double power(double x, int n)
     9     {
    10         if(n == 0) return 1;
    11         if(n == 1) return x;
    12         double v = power(x, n / 2);
    13         if(n % 2 == 0) return v * v;
    14         else return v * v * x;
    15     }
    16 }

    第三遍:

    如果不加上x== -1 的特殊test case, 会过不了大测试。 注意 power里面 不能做

    power(x, n / 2) * power(x, n / 2)
    这样时间复杂度太高。
     1 public class Solution {
     2     public double pow(double x, int n) {
     3         if(x == 1) return 1;
     4         if(x == 0) return 0;
     5         if(x == -1){
     6             if(n % 2 == 0) return 1;
     7             else return -1;
     8         }
     9         if(n < 0) return 1.0 / pow(x, -n);
    10         return power(x, n);
    11     }
    12     
    13     public double power(double x, int n){
    14         if(n == 1) return x;
    15         if(n == 0) return 1;
    16         double v = power(x, n / 2);
    17         if(n % 2 == 0) return v * v;
    18         else return v * v * x;
    19     }
    20 }
  • 相关阅读:
    Linux 文件隐藏属性-创建文件默认权限
    Linux 文件权限管理
    Linux 用户管理_用户相关配置文件详解
    Linux 压缩包管理
    vim 编辑器高级用法
    Linux ll查看文件属性详解-软硬链接详解
    安卓学习28
    安卓学习27
    安卓学习26
    安卓学习25
  • 原文地址:https://www.cnblogs.com/reynold-lei/p/3351411.html
Copyright © 2011-2022 走看看