数值的整数次方
来源:互联网 发布:mac桌面下方软件 编辑:程序博客网 时间:2024/05/16 00:49
【题目】给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
【要求】时间限制:1秒 空间限制:32768K
public double Power(double base, int exponent) { //法1:7^1101 = 7^0001*7^0100*7^1000 第一位的底数7 第二位的底数7*7 第三位底数(7*7)*(7*7) ... if(exponent<0 && base == 0) throw new RuntimeException("分母不能为0"); int exp = Math.abs(exponent); int result = 1; while(exp>0){ if((exp & 1) == 1){//最后一位为1 result *= base; } base *= base; exp = exp >>> 1; } //注意取倒数时要用1.0 否则返回int型 return exponent<0?(1.0/result):result; }
public double Power(double base, int exponent) { //法2:递归:n为偶数,a^n=a^n/2*a^n/2;n为奇数,a^n=(a^(n-1)/2)*(a^(n-1/2))*a 时间复杂度O(logn) if(exponent<0 && base == 0) throw new RuntimeException("分母不能为0"); int exp = Math.abs(exponent); if(exponent == 0) return 1; if(exponent == 1) return base; double result = Power(base, exp>>>1); result *= result; if((exp&1)==1){ //奇数 result *= base; } return exponent<0?(1.0/result):result; }
0 0
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- jQuery的函数
- React Native开发之windows开发环境最简配置
- C# 如何将Excel表格复制到Word中并保留格式
- linux环境变量自定义环境变量
- easyui 的脚本引用
- 数值的整数次方
- LeetCode459 Repeated Substring Pattern java solution
- MARK:一个Sqrt函数引发的血案
- nodejs安装的时候报错2603
- Mac上用XMAPP搭建PHP环境
- 【数据库】MYSQL查看数据库所占空间大小容量命令
- 悄然无息第一篇:阅读一篇论文的随手记要
- nrf51822笔记之密码配对过程梳理
- window.event对象详细介绍