【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其结果为:"//调用circleFactorial 30 +circleFactorial(n)+"\n"); 31 System.out.println("利用递归算法求"+n+"的阶乘"+ 32 "\n其结果为:"//调用recursiveFactorial 33 +recursiveFactorial(n)); 34 } 35 }
【运行结果】
利用循环的方式求5的阶乘
其结果为:120
利用递归算法求5的阶乘
其结果为:120
【关键技术解析】
1、递归方法主要处理好入口和出口,入口是最初始的外部对方法调用,出口是对于继续递归的限制条件,内容是对整个过程中单个步骤的一般化抽象。
2、使用抛出异常的语句。
3、两个方法都是静态的,若非静态,需要在main()中创建一个类的对象,用该对象调用方法。
【心得】
好久没写代码,最近比较忙,比较忙,比较忙……
这个例子很容易,米有啥难点,有点饿,(⊙o⊙)嗯嗯……