zoukankan      html  css  js  c++  java
  • 剑指Offer:数值的整数次方

    剑指Offer:数值的整数次方

    问题描述:
    实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。

    解题思路:

    1. 判断x的n次方为正或负数;
    2. 若为负数直接转换成int类型会超出范围,直接定义一个long型,进行转换;
    3. 当n的最低位存在 ,则进行一次乘积;
    4. 否则每次平方的关系进行扩大,(二进制当中每位相差平方数)
    class Solution {
    public:
        double myPow(double x, int n) 
        {
            double num=1;
            long N=n;
            if (N < 0)
            {
                N=-N;
            }
            while (N)
            {
                if (N&1)
                    num=num*x;	//n的最低位存在,最后再乘1个x;
                x *= x;         //每次都是x*x,   
                N >>= 1;		//N右移一位
            }
            return n > 0 ? num:1/num;
        }
    };
    
  • 相关阅读:
    highcharts
    iCheck
    MdiContainer
    wms-ssv数据字典
    hibernate 返回自定义对象
    XmlSerialize
    Db
    python groupby
    pom resource配置
    FastReport打印table
  • 原文地址:https://www.cnblogs.com/Tavi/p/12514025.html
Copyright © 2011-2022 走看看