剑指offer12数值的整数次方
Posted stephen-jixing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer12数值的整数次方相关的知识,希望对你有一定的参考价值。
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
解:
浮点数的次方也是拿着移位运算
cur=底数 指数按位&1 ?乘:不乘 cur乘倍 指数右移位
另外判断一下指数exponent的正负,返回倒数否
class Solution { public: double Power(double base, int exponent) { if(base == 0)return 0; if(exponent == 0 )return 1; double ans = 1; int cur = base ; int flag = 0 ; if(exponent<0){ flag = 1 ;//负数标记 exponent = -exponent ; } //快速幂运算 while(exponent>0){ if((exponent&1)==1){ ans*=cur; } cur*=cur; exponent = exponent>>1; } if(flag)ans = 1/ans ; return ans ; } };
以上是关于剑指offer12数值的整数次方的主要内容,如果未能解决你的问题,请参考以下文章