package myjavaapplication;public class Factorial { private int initVal,result;
public static void main(String[] args) {
Factorial ff=new Factorial();
for(int i=0;i<5;i++){
ff.setInitVal(2*(i+1));
ff.result=Factorial(ff.initVal);
ff.print();
}
} public static int Factorial(int n) {
if (n == 0)
return 0;
else
return n*Factorial(n-1);
}
public void setInitVal(int n){
initVal=n;
}
public void print(){
System.out.println(initVal+"!="+result);
}
}请问为什么结果都为0?
public static void main(String[] args) {
Factorial ff=new Factorial();
for(int i=0;i<5;i++){
ff.setInitVal(2*(i+1));
ff.result=Factorial(ff.initVal);
ff.print();
}
} public static int Factorial(int n) {
if (n == 0)
return 0;
else
return n*Factorial(n-1);
}
public void setInitVal(int n){
initVal=n;
}
public void print(){
System.out.println(initVal+"!="+result);
}
}请问为什么结果都为0?
return 1;
返回值改成1就行啦
if (n == 0)
return 1; 如果返回0,则n*Factorial(n-1)值都为零
return 1;