【Java中的递归】
使用循环方法和递归方法求阶乘。
【源代码】
1 package javaexamples; 2 3 public class ForCycle 4 { 5 public static int circleFactorial(int n){ //利用循环的方式求阶乘 6 int sum = 1; 7 if(n<0){ //判断参数n是否为负数 8 throw new IllegalArgumentException("必须为正整数!");//抛出不合理参数异常 9 }10 for(int i=1;i<=n;i++){ //执行n次循环操作11 sum*=i;//每循环一次进行乘法运算12 }13 return sum;//返回阶乘的值14 }15 public static int recursiveFactorial(int n){ //利用递归算法求阶乘16 int sum=1;17 if(n<0)18 throw new IllegalArgumentException("必须为正整数!");//抛出不合理参数异常19 if(n==1){20 return 1;//如果n=1则跳出循环21 }else{22 sum=n*recursiveFactorial(n-1);//运用递归计算23 return sum;24 }25 }26 public static void main(String[] args){27 int n=5;28 System.out.println("利用循环的方式求"+n+"的阶乘"+29 "\n其结果为:"//调用circleFactorial30 +circleFactorial(n)+"\n");31 System.out.println("利用递归算法求"+n+"的阶乘"+32 "\n其结果为:"//调用recursiveFactorial33 +recursiveFactorial(n));34 }35 }
【运行结果】
利用循环的方式求5的阶乘
其结果为:120
利用递归算法求5的阶乘
其结果为:120
【关键技术解析】
1、递归方法主要处理好入口和出口,入口是最初始的外部对方法调用,出口是对于继续递归的限制条件,内容是对整个过程中单个步骤的一般化抽象。
2、使用抛出异常的语句。
3、两个方法都是静态的,若非静态,需要在main()中创建一个类的对象,用该对象调用方法。
【心得】
好久没写代码,最近比较忙,比较忙,比较忙……
这个例子很容易,米有啥难点,有点饿,(⊙o⊙)嗯嗯……