给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

思路:
1.指数的二进制表达10^6次方 可以表示10^110(二进制) 10^100 * 10^10 * 10^000=>10^4 * 10^2
2.移位运算 while(n!=0){
if((n&1)==1)
res*=curr;
curr*=curr;// 翻倍
n>>=1;// 右移一位
}
<?php
function Power($base, $n){
$res = 1;
$curr = $base;
$exponent;
if($n>0){
$exponent = $n;
}else if($n<0){
if($base==0) return 0;
$exponent = -$n;
}else{// n==0
return 1;// 0的0次方
}
//$exponent转成二进制,有多少位就循环多少次,curr就执行n+1次方,如果当前位是1的就结果相乘
while($exponent!=0){
if(($exponent&1)==1)
$res*=$curr;
$curr*=$curr;// 翻倍
//var_dump($curr);
$exponent>>=1;// 右移一位
}
return $n>=0?$res:(1/$res);//指数是负数的情况
} $a=Power(10,6);
var_dump($a);
~

[PHP] 算法-数值的整数次方的PHP实现的更多相关文章

  1. 九度OJ 1514 数值的整数次方【算法】

    题目地址:http://ac.jobdu.com/problem.php?pid=1514 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的expo ...

  2. 《剑指offer》面试题11: 数值的整数次方

    面试题11: 数值的整数次方 剑指offer面试题11,题目如下 实现函数double power(double base,int exponent),求base的exponent次方, 不得使用库 ...

  3. 1514:数值的整数次方 @jobdu

    题目1514:数值的整数次方 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:377 解决:103 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent. ...

  4. 剑指offer编程题Java实现——面试题11数值的整数次方

    题目: 实现函数double power(double base,int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 解题思路:最一般的方法实现数值 ...

  5. 数值的整数次方(C++ 和 Python 实现)

    (说明:本博客中的题目.题目详细说明及参考代码均摘自 “何海涛<剑指Offer:名企面试官精讲典型编程题>2012年”) 题目 实现函数 double Power(double base, ...

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

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

  7. 【剑指offer】面试题 16. 数值的整数次方

    面试题 16. 数值的整数次方 题目描述 题目:给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解答过程 下面的讨论中 x 代表 bas ...

  8. 剑指Offer - 九度1514 - 数值的整数次方

    剑指Offer - 九度1514 - 数值的整数次方2013-11-30 00:49 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponen ...

  9. php实现数值的整数次方

    php实现数值的整数次方 一.总结 没有考虑到指数为负数的情况 二.php实现数值的整数次方 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exp ...

随机推荐

  1. [ARCH] 1、virtualbox中安装archlinux+i3桌面,并做简单美化

    星期六, 28. 七月 2018 02:42上午 - beautifulzzzz 1.安装ArchLinux系统 安装Arch主要看其wiki,比较详细- 中文的我主要参考:一步步教你如何安装 Arc ...

  2. 用java开发dota英雄最华丽的技能

     爱java 爱dota,突发奇想想用java开发dota操作最华丽的英雄之一的卡尔的技能,因为本人系小白,代码不足的地方还请包涵,有同样爱好的同学欢迎一起研究学习. 先把我的代码呈上 import ...

  3. Java初学者容易犯的代码错误

    1. 不会判断空 空指针异常是所有Java初学者接触最多的异常,没有之一.原因是,你们拿到一个对象后容易不假思索的直接使用(直接给这个对象的属性赋值,直接调用这个对象的方法等),不报异常才怪呢!下面是 ...

  4. 吴恩达机器学习笔记22-正则化逻辑回归模型(Regularized Logistic Regression)

    针对逻辑回归问题,我们在之前的课程已经学习过两种优化算法:我们首先学习了使用梯度下降法来优化代价函数

  5. Python中list的删除del&remove小区别

    del删除时候指定下标,remove必须指定具体的值

  6. MyBatis 的动态 SQL 使用说明

    动态SQL简介 参考文档地址:http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 ...

  7. electron-builder 由于网络原因无法下载问题解决

    electron-builder 由于网络原因无法下载问题解决 在package.json的build中添加electron的镜像 "electronDownload": { &q ...

  8. dubbo实用知识点总结(二)

    1. 参数验证 2. 结果缓存 3. 泛化引用 客户端没有对应接口类的情况,可以直接调用 4. 泛化实现 5. 回声测试 用于检测服务是否可用 6. 上下文信息 7. 隐式传参(不常用) 8. 异步调 ...

  9. 【MySQL】当前读、快照读、MVCC

    当前读: select...lock in share mode (共享读锁) select...for update update , delete , insert 当前读, 读取的是最新版本, ...

  10. 如何将一个文本内容通过PHP 以表格的方式输入到页面上

    如何将一个文本内容通过PHP 以表格的方式输入到页面上 <?php //读取文本内容 $contents = file_get_contents("names.txt"); ...