Java中递归阶乘函数中负整数的处理
我已经用Java编写了递归阶乘函数。该程序工作正常,但如果给定的整数输入为负数,我希望函数显示一条消息,并立即退出自身,而不是递归调用自身Java中递归阶乘函数中负整数的处理,java,recursion,factorial,Java,Recursion,Factorial,我已经用Java编写了递归阶乘函数。该程序工作正常,但如果给定的整数输入为负数,我希望函数显示一条消息,并立即退出自身,而不是递归调用自身 这怎么可能呢?阶乘运算仅定义为非负整数。Java处理此问题的方法是简单地在负输入上抛出一个IllegalArgumentException: public static int factorial (int n) { if (n < 0) { throw new IllegalArgumentException ("n must
这怎么可能呢?阶乘运算仅定义为非负整数。Java处理此问题的方法是简单地在负输入上抛出一个
IllegalArgumentException
:
public static int factorial (int n) {
if (n < 0) {
throw new IllegalArgumentException ("n must be non-negative");
}
if (n == 0) {
return 1;
}
return n * factorial (n - 1);
}
公共静态整数阶乘(int n){
if(n<0){
抛出新的IllegalArgumentException(“n必须为非负”);
}
如果(n==0){
返回1;
}
返回n*阶乘(n-1);
}
阶乘运算仅为非负整数定义。Java处理此问题的方法是简单地在负输入上抛出一个IllegalArgumentException
:
public static int factorial (int n) {
if (n < 0) {
throw new IllegalArgumentException ("n must be non-negative");
}
if (n == 0) {
return 1;
}
return n * factorial (n - 1);
}
公共静态整数阶乘(int n){
if(n<0){
抛出新的IllegalArgumentException(“n必须为非负”);
}
如果(n==0){
返回1;
}
返回n*阶乘(n-1);
}
在调用递归方法之前,可以使用以下代码段-
if(inputNumber<0){
break;
}else{
findFactorial(inputNumber);//recursive method call to find factorial
}
if(inputNumber在调用递归方法之前,可以使用以下代码段-
if(inputNumber<0){
break;
}else{
findFactorial(inputNumber);//recursive method call to find factorial
}
if(inputNumberif查找负数返回函数
if(n < 0) {
return;
} else {
findFactorial(n);//recursive method call
}
if(n<0){
回来
}否则{
FindFactory(n);//递归方法调用
}
如果查找负数返回函数
if(n < 0) {
return;
} else {
findFactorial(n);//recursive method call
}
if(n<0){
回来
}否则{
FindFactory(n);//递归方法调用
}
请添加您的代码,以便我们能够更好地了解在何处进行更改请添加您的代码,以便我们能够更好地了解在何处进行更改您不必回答网站上现在发布的关于java的所有问题:)+1.Nah,我将这一点告诉Jon Skeet:-)我很幸运,Skeet先生似乎与我的时区没有太多重叠:)你现在不必回答网站上发布的关于java的所有问题:)+1.不,我会告诉Jon Skeet:-)幸运的是,Skeet先生似乎与我的时区没有太多重叠:)我没有从递归中冲泡出来。它只是在初始调用(可能来自main方法)递归方法findFactorial()
之前的一个检查。我不是在从递归中酝酿。它只是在初始调用(可能来自main方法)递归方法findFactorial()
之前进行检查。