注意,这个题有坑,除坑措施都在代码中:
import java.util.Scanner;
public class Solution {
public double Power(double base, int exponent) {
if (base == 0) return 0;
else if (exponent == 0 && base != 0) return 1;
else if (base > 0 && exponent <0) return 1/(basePower ( base,-exponent-1 ));
else if (base < 0 && exponent > 0) {
if (exponent %2 != 0) return basePower ( base,exponent-1 );
else return -basePower ( -base,exponent-1 );
}
else if (base < 0 && exponent < 0){
if (exponent %2 != 0) return 1/(basePower ( base,-exponent-1 ));
else return 1/(-basePower ( -base,-exponent-1 ));
}
else return basePower ( base,exponent-1 );
}
public static void main (String[] args) {
Solution solution = new Solution ();
Scanner scanner = new Scanner ( System.in );
System.out.println (“输入底数和指数:”);
double base = scanner.nextDouble ();
int exp = scanner.nextInt ();
double a = solution.Power ( base,exp );
System.out.println (a);
}
}
本文介绍了一个Java实现的幂运算算法,特别关注了处理各种边界情况,如底数为零、指数为负数或底数与指数同时为零的情况。通过递归调用自身并结合条件判断,该算法能够正确处理所有可能的输入组合。
369

被折叠的 条评论
为什么被折叠?



