数值的整数次方
来源:互联网 发布:js改变display属性 编辑:程序博客网 时间:2024/05/16 13:50
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
当然不能用库函数,否则就没意思了。。。
乍看挺简单,但是我们要考虑全面,考虑一些不同情况:
(1)底数为0,指数为0,无意义
(2)底数为0,指数为负,无意义
(3)指数为正
(4)指数为负
对于牛客上这道题,测试用例没有非法的输入,所以程序中没有处理,但是一定要考虑到这些情况
可以递归求解:时间复杂度为O(logn)
判断是否为偶数和除法都用位运算
代码1:
class Solution {public: double Power(double base, int exponent) { if(base==0) return 0; if(exponent==0) return 1; if(exponent==1) return base; int flagExp=0; if(exponent<0) flagExp=1; exponent=abs(exponent); double re=recurPower(base,exponent); if(flagExp) re=1.0/re; return re; } double recurPower(double base,unsigned int exponent){ if(exponent==1) return base; int re=Power(base,exponent>>1); re*=re; if(exponent&1) re*=base; return re; }};
还可以这样写:
代码2:
class Solution {public: double Power(double base, int exponent) { if(base==0) return 0; if(exponent==0) return 1; unsigned int absExponent=abs(exponent); double re=recurPower(base,absExponent); return exponent>0?re:1.0/re; } double recurPower(double base,unsigned int absExponent){ if (absExponent == 1)return base; if(absExponent&1) return recurPower(base*base,absExponent>>1)*base; else return recurPower(base*base,absExponent>>1); }};
0 0
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 那个不肯跳出舒适区的女孩 升职了
- final关键字方法
- sklearn用户手翻译【by Google】【1】【未完待续】
- MySQL 从 .ibd 文件恢复数据
- matlab2014a找不到编译器vs2015的问题
- 数值的整数次方
- 第十五届北京师范大学程序设计竞赛决赛 B. Borrow Classroom【思维+LCA】好题~
- 使用D3制作统计图表、线性图表、水平柱状图表、饼图 -- (三)竖直柱状图表
- Kosaraju算法解析: 求解图的强连通分量
- BZOJ4825: [Hnoi2017]单旋
- 李开复:创造伟大AI公司,要生逢其时,还要有正确的人
- 软工文档——总结
- SQLite数据库--案例:商品展示
- HAUTOJ-1267 ch追妹