每天一道剑指offer-数值的整数次方
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路
首先要把所有的情况都考虑在内,比如基数和指数为0的情况,指数为负数的情况。
然后说一下一种比较优的思路,比如一个数的32次方,它与这个数16次方的平方相等,依次类推,求一个数的32次方只需做5次乘方,先求平方,平方的基础上求四次方,在四次方基础上求八次方,在八次方基础上求十六次方,在十六次方基础上求三十二次方。
可以总结为公式: an = a(n/2)*a(n/2) n为偶数
an = a(n-1/2)*a(n-1/2)*a n为奇数
而n/2使用右移运算符
代码
public double Power(double base, int exponent) {if(base == 0 ){return 0.0;}double res =1.0;double odd = base;int n = exponent;if(exponent<0){n=-exponent;}while(n != 0){if((n & 1) == 1){res *= odd; //奇数}odd *= base; //指数为偶数,n >>= 1;}return exponent>0 ? res:(1/res);}
需要注意的一点,n & 1是判断n奇偶,等于0为偶数,等于1为奇数,上面最后一个循环的代码实现了上面的公式。
每天一道剑指offer-数值的整数次方相关推荐
- 剑指offer.数值的整数次方
实现函数double Power(double base, int exponent),求base的 exponent次方.不得使用库函数,同时不需要考虑大数问题. 注意: 不会出现底数和指数同为0的 ...
- 剑指offer16. 数值的整数次方P110
剑指offer16. 数值的整数次方P110 题目:实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要 ...
- double取整数部分_剑指offer_16_数值的整数次方
//面试题16.数值的整数次方 //题目:实现函数double Power(double base,int exponent),求base的exponent次方. //不得使用库函数,同时需要考虑大数 ...
- 剑指Offer_12_数值的整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解题思路 当exponent为0时,返回1,当exponent大于0,那么循环 ...
- 剑指offer-11.数值的整数次方实现power
0 题目 给定一个double类型的浮点数base和int类型的整数exp.求base的exp次方. 1 分析 输入的exp指数可能是负数,base可能是0.但因为是double所以不能用等号判断 另 ...
- 剑指offer 数值的整次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解决方案: public class Solution {public dou ...
- 剑指offter27. 数值的整数次方-java实现
本文中讨论了三种解法 详细的介绍了快速幂对于指数是负数的情况,同时指数的范围的Int 的负极限 原题链接 实现函数double Power(double base, int exponent),求ba ...
- 2021-07-11剑指offer16.数值的整数次方
class Solution {public double myPow(double x, int n) {if(x == 0) return 0;//考虑到特殊的情况,如果为零就直接返回,否则可能会 ...
- 剑指offer II 001.整数除法
剑指 Offer II 001. 整数除法 整数除法 题目链接 题目要求: 给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 '*'.除号 '/' 以及求余符号 '%' . 注 ...
- 一道剑指offer经典面试题引发的思考
大家在拿到一道算法题的时候,都会思考些什么呢? 大家有没有想过,当有一位面试官追问你,这道题有没有什么问题,或者有没有什么更好的方法,你们的内心是怎样的呢? 可能你会瞪大了眼,一些盲目自信的同学可能会 ...
最新文章
- python获取文件的大小_python获取文件大小
- pdf2htmlex linux 编译,如何安装编译pdf2htmlex实现pdf到html的格式转换功能
- NtQueryInformationProcess用法
- scrapy爬虫储存到mysql_详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
- 小公司如何提高效率?
- 11.向量vector.rs
- JavaScript 音频处理库 pico.js
- 软化边硬化边_夏天多给小朋友吃它,蛋白质是牛肉的3倍,老人吃还能软化血管...
- 快手上也可以看电竞赛事了:S9直播观看人数惊人!
- mysql数控不小心被删_mysql 数据库信息不小心被删除了, 请问能恢复么
- 封装自己的DB类(PHP)
- neatupload 控件上传大文件
- 畅销书排行榜html作业,制作畅销书排行榜.html
- iOS集成OpenCV,并实现图片马赛克
- 基于Java的资产管理系统的设计与实现
- Linux常用命令大全(非常全!!!)
- 《英语语法新思维初级教程》学习笔记(八)一般时态
- 最新狂雨小说CmsV1.5.2漂亮的小说网站源码
- 网站建设的方案和流程介绍
- 哪些方法可以用来提高微信小程序的应用速度?