用递归算法来求阶乘
递归算法:在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。通过通过直接或间接调用本身得到结果;达到循环的作用;
阶乘:一个正整数的阶乘是所有小于及等于该数的正整数的积(如5的阶乘为:5 * 4 * 3 * 2 * 1=120),并且0的阶乘为 1 ,1 的阶乘为 1 。
示例代码
package com.etime2;
public class Test01 {
public static void main(String[] args) {
//递归算法---求阶乘
//5的阶乘 : 5*4*3*2*1=120
int factorial = factorial(5);
System.out.println(factorial);//运行结果:120
System.out.println("-------------------");
//输入错误的数
int factorial2 = factorial(-5);
System.out.println(factorial2);
//运行结果:-5: 是小于0的数 无法求阶乘!!!
}
public static int factorial(int a) {
if(a>=0) {//大于0的数才可以计算阶乘
if(a==0) {//0的阶乘为1
return 1;
}else if(a==1){//1的阶乘为1
return 1;
}else {
//如果数等于2及以上就进行递归计算
//5*4没得到最后结果之前,当前结果处于挂起状态
return a*factorial(a-1);
}
}else {
System.out.println(a+": 是小于0的数 无法求阶乘!!!");
return -1;
}
}
}