求一个数值的整数次方,不考虑大数的问题
来源:互联网 发布:网络合同 编辑:程序博客网 时间:2024/04/29 21:41
public static double Power(double base , int exponent)
具体实现请参考一下代码:
package cn.gt.algori;/** * 数值的整数次方 不考虑大数的问题 * @author gengtao * */public class train0808_1 {private static boolean invalidInput = false;public static void main(String[] args) {// TODO Auto-generated method stub double number = 2.5; int exponent = 5; double result = Power(number , exponent); if(invalidInput == true){ System.out.println("Invalid input!"); } System.out.println(result);}//判断两个double数据是否相等 public static boolean equal(double num1 , double num2){ if((num1 - num2 > -0.0000001) && (num1 - num2 < 0.0000001)){ return true; }else{ return false; } } public static double Power(double base , int exponent){ if(equal(base , 0.0) && exponent < 0){ invalidInput = true; return 0.0; } int absExponent = exponent; if(exponent < 0){ absExponent = -exponent; } double result = PowWithExponent(base , absExponent); if(exponent < 0){ result = 1.0 / result; } return result; } //使用递归求解 用右移代替除运算,和1取与代替求余运算。 public static double PowWithExponent(double base , int absExponent){ if(absExponent == 0) return 1.0; if(absExponent == 1) return base; double result = PowWithExponent(base , absExponent >> 1); result *= result; if((absExponent & 1) == 1){ result *= base; } return result; }}
0 0
- 求一个数值的整数次方,不考虑大数的问题
- 数值的整数次方(不考虑大数问题)
- 数值的整数次方(不考虑结果的大数问题)优秀的代码就是要注意细微的细节
- 剑指offer 数值的整数次幂,求base的exponent次方,不能使用库函数,同时不需要考虑大数问题
- 剑指offer 求一个数的n次方,不考虑大数问题
- 数值的整数次方double pow(double base,int exponent)求base的exponent次方 不考虑大数 不准用库函数
- C语言 整数的整数次方(不考虑大数问题)
- 求数值的整数次方。
- 求数值的整数次方
- 求数值的整数次方
- 求a的b次方,不用考虑大数问题,不使用库函数
- 数值的整数次方(求幂)
- 【算法】求数值的整数次方
- 求一个整数的次方
- 数值的整数次方---考察是否考虑的全面
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- Sort List
- hdu1028Ignatius and the Princess III(最基础的母函数模板)
- Android空间EditText的InputType属性
- qbo 点云数据(距离)的获取
- springmvc controller传值
- 求一个数值的整数次方,不考虑大数的问题
- Notepad++启动时配置文件损坏的解决方法
- UML符号---设计模式之基础
- uploadify 导致Chrome频繁崩溃Crash
- 本地通知——UILocalNotification
- hdoj 2030 汉字统计 氺过~
- sql触发器,函数
- hdu 1070(结构体排序)
- error C2041: illegal digit '#' for base '8'