zoukankan      html  css  js  c++  java
  • 剑指offer——17数值的整数次方

    题目描述

    给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
     
    保证base和exponent不同时为0
     
    一般解法:
      直接相乘;
      
     1 class Solution01 {
     2 public:
     3     double Power(double base, int exponent) {
     4         if (exponent == 0 || equal(base, 0.0, 0.0))return 1;
     5         double res = 1.0;
     6         for (int i = 1; i <= abs(exponent); ++i)
     7             res *= base;
     8         return exponent < 0 ? (1.0 / res) : res;
     9     }
    10 };
    高效率解法:
      使用递归:
      

       

     1 class Solution02 {
     2 public:
     3     double Power(double base, int exponent) {
     4         if (exponent == 0 || equal(base, 0.0, 0.0))return 1;
     5         double res = PowerMul(base, abs(exponent));
     6         return exponent < 0 ? (1.0 / res) : res;
     7     }
     8     double PowerMul(double base, unsigned int exponent)
     9     {
    10         if (exponent == 0)return 1;
    11         if (exponent == 1)return base;
    12 
    13         double res = PowerMul(base, exponent >> 1);
    14         res *= res;
    15         if (exponent & 1)//奇数
    16             res *= base;
    17         return res;
    18     }
    19 };
  • 相关阅读:
    智能手机
    Micro LED
    paper-10-IRM-in-MANETs
    INFOCOM
    如何基于 Android Things 构建一个智能家居系统?
    (OK) VNCserver
    CCF 2016-04-2 俄罗斯方块
    CCF 2016-04-1 折点计数
    洛谷 P1927 防护伞
    洛谷 P1843 奶牛晒衣服
  • 原文地址:https://www.cnblogs.com/zzw1024/p/11656864.html
Copyright © 2011-2022 走看看