本文主要是介绍面试题11. 数值的整数次方,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路:
核心是一个循环,进行不断累乘。
注意特殊输入:
exponent为0的情况
exponent为负数的情况
另外,在计算机中,判断两个double型是否相等,只能判断它们的绝对值只差是否在一个很小的范围内
这是加分点
public class Solution {public double Power(double base, int exponent) {double result = 1.0;int exponent_abs = Math.abs(exponent);if(equal(base, 0.0) && exponent < 0) { // 0的负数幂return 0.0;}if(equal(exponent, 0.0)) {return 1;}else {for(int i = 0; i < exponent_abs; i++) {result *= base;}}return exponent > 0 ? result : 1 / result;}// 在计算机中,判断两个double型是否相等// 只能判断它们的绝对值只差是否在一个很小的范围内public boolean equal(double n1, double n2) {return (n1 - n2 > -0.0000001) && (n1 - n2 < 0.0000001); }
}
这篇关于面试题11. 数值的整数次方的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!