博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
每日一练No.5
阅读量:6535 次
发布时间:2019-06-24

本文共 1412 字,大约阅读时间需要 4 分钟。

【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⊙)嗯嗯……

转载于:https://www.cnblogs.com/mengqiqi/archive/2012/09/19/2693885.html

你可能感兴趣的文章