递归求阶乘
public class Factorial {
/**
* 核心代码 传入一个正整数,返回这个数的阶乘 运用了递归的知识 加入i=8,8!=1,那么
* 执行8*Ftr(7)-->8*7*Ftr(6)-->8*7*6*Ftr(5)...-->8*7*6*5*4*3*2*Ftr(1)
* 直到传入1,1==1,所以返回1,不会继续返回0或者-1-->8*7*6*5*4*3*2*1
*
* @param i
* @return
*/
public int Ftr1(int i) {
if (i == 1) {
return i;// 1的阶乘为1
}
return i * Ftr1(i - 1);
}
public static void main(String[] args) {
int j = new Factorial().Ftr1(8);//综上所述,这句话相对于int j = 8*7*6*5*4*3*2*1;
System.out.println(j);
}
}
注:
原创代码,如有雷同,纯属巧合
代码有许多不足,欢迎留言讨论和更正