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

    实现 pow(x, n) ,即计算 x 的 n 次幂函数。

    //感想:自己也是菜的不行,我竟然把这个当成那种需要位运算的那种题解求什么乘法这类的题目,大错特错。

    还是看了答案,发现自己好像刷过这道题,或者是非常相似的一道,看完我就感觉特别熟悉。。。

    //题解:快速幂,对于一个pow(x,n)来说求x的n次幂,如果n是偶数比如是4,那么相当于是两个2相乘也就是说 n^4=n^2*n^2,也就是说现在只需要求出n^2就可以了

    如果n为奇数的话也是差不多的,比如说n为5   x^5=x^2*x^2*x也就说还是求出x^2,比上面多乘了一个x

    那么n一直往下走,是不是就变成递归了,走到2,然后走到1,1/2就变成0了,那么x^0是不是就等于1.0了,所以递归的终止条件就出来了,当n==0的时候直接return 1.0.

    就这样一直向上返回的话,返回到最上面的那个n,那么答案也就出来了,递归的返回也就借宿了。

    下面是代码:

     1 class Solution {
     2     public double myPow(double x, int n) {
     3         
     4         if(n<0)
     5         {
     6             x=1/x;
     7             n=-n;
     8         }
     9          return fastPow(x,n);
    10     }
    11     public double fastPow(double x,int N)
    12     {
    13         if(N==0)
    14             return 1.0;
    15         double half=fastPow(x,N/2);
    16         if(N%2==0)
    17             return half*half;
    18         else
    19             return half*half*x;
    20     }
    21 }
    View Code
  • 相关阅读:
    docker 的基本使用
    yum 工具安装的程序默认目录与位置
    Tampermonkey 脚本记录
    Windows 安装配置sublime-text3与破解
    heidisql 轻量级工具
    ubuntu 系统配置静态IP地址
    linux 日志分析
    Windows 桌面整理工具
    高效实用Linux命令行
    物联网实验4 alljoyn物联网实验之手机局域网控制设备
  • 原文地址:https://www.cnblogs.com/cold-windy/p/11736265.html
Copyright © 2011-2022 走看看