java - 我不明白递归方法
问题描述
public static double calculatePower (double x, int y) {
if (y == 0)
return 1;
else
return (int) calculatePower(x, y-1);
我了解如何调用递归函数,但不了解它是如何被取消的。
我认为,如果在某些时候y=1
该函数应该return 1
是因为该if
声明。但它没有,我不明白为什么
解决方案
对于每次递归调用,传入y
参数都会减少一个,因为您编写了calculatePower(x, y-1);
. 在某些时候y
,0
递归停止。
请注意,您的功率计算是错误的,您应该x *
在实际递归调用之前添加一个:x * calculatePower(x, y-1)