问题

这个函数中包含递归的内容,运行程序出现错误:Exception in thread “main” java.lang.StackOverflowError ,堆栈溢出。

public static double showAn(int n) {
		if (n>1) {
			return a * (Math.pow(10, (n-1))) + showAn(n-1);
		}
	}

解决方法

由于没有明确n的范围,导致该递归会一直进行下去而出错。我补上了else来处理n<=1时的情况,使递归可以在n=1时停止。

public static double showAn(int n) {
		if (n>1) {
			return a * (Math.pow(10, (n-1))) + showAn(n-1);
		}
		else {
			return a;
		}	
	}
Logo

鸿蒙生态一站式服务平台。

更多推荐