The*_*bbs 2 java stack-overflow recursion compiler-errors exception
谁能告诉我为什么我会收到这个错误?这真让我烦恼.我想要做的是找到表达式2 ^ k +1的总和,因为k的范围从1到n.
import java.util.*;
public class mySums
{
private static double n;
public static void main(String[] args)
{
recurSum(4);
System.out.println();
}
/* public static void iterativeSum (int num)
{
}
*/
public static double recurSum (double num)
{
if (n==1){
return 1;}
else {
return (Math.pow(2.0, n) +1) + recurSum(n-1);}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
这是因为你使用的是n代替num你的recurSum.n是一个永不改变的静态变量; 你应该删除它.num另一方面,是您传递给的参数recurSum; 当你降低递归调用的级别时,它的值会降低,最终会命中1并让你退出:
public static double recurSum (double num) {
if (num==1) {
return 1;
} else {
return (Math.pow(2.0, num) +1) + recurSum(num-1);
}
}
Run Code Online (Sandbox Code Playgroud)