题目描述

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
 
保证base和exponent不同时为0
 
一般解法:
  直接相乘;
  

 class Solution01 {
public:
double Power(double base, int exponent) {
if (exponent == || equal(base, 0.0, 0.0))return ;
double res = 1.0;
for (int i = ; i <= abs(exponent); ++i)
res *= base;
return exponent < ? (1.0 / res) : res;
}
};
高效率解法:
  使用递归:
  

  

 class Solution02 {
public:
double Power(double base, int exponent) {
if (exponent == || equal(base, 0.0, 0.0))return ;
double res = PowerMul(base, abs(exponent));
return exponent < ? (1.0 / res) : res;
}
double PowerMul(double base, unsigned int exponent)
{
if (exponent == )return ;
if (exponent == )return base; double res = PowerMul(base, exponent >> );
res *= res;
if (exponent & )//奇数
res *= base;
return res;
}
};

剑指offer——17数值的整数次方的更多相关文章

  1. 《剑指offer》 数值的整数次方

    本题来自<剑指offer> 数值的整数次方 题目: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 思路: 代码从三个方面处 ...

  2. 【剑指Offer】数值的整数次方 解题报告(Python)

    [剑指Offer]数值的整数次方 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interviews ...

  3. 【Java】 剑指offer(15) 数值的整数次方

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 实现函数double Power(double base, int ...

  4. (3)剑指Offer之数值的整数次方和调整数组元素顺序

    一 数值的整数次方 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 问题解析: 这道题算是比较麻烦和难一点的一个了.我这里采 ...

  5. 【剑指offer】数值的整数次方

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mmc_maodun/article/details/25506085 转载请注明出处:http:// ...

  6. Go语言实现:【剑指offer】数值的整数次方

    该题目来源于牛客网<剑指offer>专题. 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 保证base和exponent不 ...

  7. 剑指 Offer 16. 数值的整数次方

    实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 来源:力扣(LeetCode) 链接 ...

  8. 剑指OFFER之数值的整数次方(九度OJ1514)

    题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 输入: 输入可能包含多个测试样例.对于每个输入文件,第一行输入一个整数T,表 ...

  9. 剑指Offer 12. 数值的整数次方 (其他)

    题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 题目地址 https://www.nowcoder.com/practice/ ...

随机推荐

  1. 暴力枚举+扫描线+线段树——cf1194E

    /*思路就是枚举矩形下面那条先,把所有和其交叉的竖线更新进线段树,然后扫描先向上更新,遇到竖线上端点就在线段树里删掉,遇到横线就更新答案*/#include<bits/stdc++.h> ...

  2. 线性dp——1197D

    一开始没有什么头绪,后来注意到m<=10,考虑是否可以用dp[i][j]表示第i位,前面跟了j个数的最大值 那么第i+1个数,直接和第i个数的[0,m]的m+1种状态去转移即可,如果是由0或m状 ...

  3. git: 使用submodule进行托管

    问题描述: 当一个prj.git项目里引用了另外一个moduleA.git项目作为其一个子模块,由于该模块未完善后续可能将继续升级,也就是需要两套git分别管理prj.git与moduleA.git, ...

  4. 在Linux下面无法使用向上箭头自动补全上条命令

    会用^[[A替代. 参考:http://stackoverflow.com/a/8641302/941650

  5. 常用内置模块(三)——shelve、xml、hashlib、configparser

    常用模块(三) 一.shelve模块 1.shelve模块也是一种序列化模块,内部使用的是pickle模块,所以也存在跨平台性差的问题 2.特点: 只要提供一个文件名即可 读写的方式和字典一样 将数据 ...

  6. MySQL慢查询日志分割

    mysql> set global slow_query_log=0; Query OK, 0 rows affected (0.00 sec)   mysql> set global s ...

  7. 在linux 下查询某个进程被那个程序占用

    ps -ef|grep pid ps -aux | grep pid 清除linux 缓存: echo 1 > /proc/sys/vm/drop_caches

  8. js文本框焦点自动聚焦到下个文本框

    HTML: <form> <input type="text" name="text1" maxlength="3" si ...

  9. python调用tushare获取上市公司管理层人员薪酬和持股

    接口:stk_rewards 描述:获取上市公司管理层薪酬和持股 积分:用户需要2000积分才可以调取,具体请参阅本文最下方积分获取办法 注:tushare包下载和初始化教程,请查阅我之前的文章 输入 ...

  10. node+webpack+vue的环境搭建

      一般第一次搭建环境的时候,多多少少还是会出点状况的.这个时候多去百度,看牛人怎么解决,然后跟着尝试,多试几遍还是能解决的. 先说一下我安装的过程吧 1.我一开始按照官网的来搭建,失败了.报错内容是 ...