数值的整数次方
来源:互联网 发布:帝国全面战争海军数据 编辑:程序博客网 时间:2024/05/18 18:14
题目描述:
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路:
- 1、当幂为负时,取倒数;
- 2、当幂为0时,若底非0,则取1,若底为0,无意义,也取1;
- 3、遍历则时间复杂度为O(n),对求幂进行优化,当幂数为偶数时,结果为幂为exponent/2的两个数的乘积,当幂为奇数时,结果为幂为(exponent-1)/2的两个数的乘积,再乘base。时间复杂度O(logn)。
1、递归
class Solution {public: double Power(double base, int exponent) { if (exponent == 0) return 1; if (exponent == 1) return base; int temp = abs(exponent); double result = Power(base, temp >> 1); result *= result; if ((temp & 0x1) == 1) result *= base; result = exponent >= 0 ? result : 1/result; return result; }};
2、非递归
class Solution {public: double Power(double base, int exponent) { if (exponent == 0) return 1; if (exponent == 1) return base; int temp = abs(exponent); double result = 1.0; while (temp) { if (temp & 0x1 == 1) result *= base; base *= base; temp >>= 1; } result = exponent >= 0 ? result : 1/result; return result; }};
阅读全文
0 0
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 防火墙设置
- Linux:解决Permission denied: make_sock: could not bind to address
- Java操作符
- JVM常量池及字符串==比较分析
- 获取屏幕大小、获取底部虚拟按键高度
- 数值的整数次方
- ViewController的生命周期分析和使用
- 第一个Spring MVC框架的hello world项目
- 小米手机在Android Studio运行出错集及其解决方案
- HIVE自定义UDF进行数据清理——IDEA
- 系统监控工具----Inotify-Tools
- 初次使用MarkDown编辑器
- palindrome-partitioning Java code
- C++中内联函数的作用以及与宏代码的区别