为什么这段代码在java中发送给我Stackoverflow
发布时间:2020-12-15 02:04:25 所属栏目:Java 来源:网络整理
导读:我尝试使用long和double与c,k,n变量,但netbeans显示堆栈溢出错误: public class Main {public static void main(String[] args) { double c=0; //combinatorial double n=5; double k=15; c= factorial(n)/(factorial(k)*factorial(n-k)); System.out.print
我尝试使用long和double与c,k,n变量,但netbeans显示堆栈溢出错误:
public class Main { public static void main(String[] args) { double c=0; //combinatorial double n=5; double k=15; c= factorial(n)/(factorial(k)*factorial(n-k)); System.out.print(n+" combinatorial "+k+" between "+c+"n"); } static double factorial (double number) { if (number == 0) return 1; else return number * factorial(number-1); } } Exception in thread "main" java.lang.StackOverflowError at co.combinatorial.Main.factorial(Main.java:26) at co.combinatorial.Main.factorial(Main.java:29) at co.combinatorial.Main.factorial(Main.java:29) at co.combinatorial.Main.factorial(Main.java:29) ...... Java结果:1 我是否必须使用整数文字或long.parselong 我做错了什么? 解决方法
从初始值开始,n-k = -10.由于这小于0,因此您的阶乘方法将永远不会返回
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |