• 每日一练No.5


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

  • 相关阅读:
    asp.net 通过js调用webService注意
    身份证号码验证 类
    char值码对应大全
    C# 让textbox 只能输入数字的方法
    table嵌套循环数据
    拆分字符串
    angular的路由配置
    js对象数组(JSON) 根据某个共同字段 分组
    当前时间的后七天
    ajax提交时“加载中”提示的处理方法
  • 原文地址:https://www.cnblogs.com/mengqiqi/p/2693885.html
Copyright © 2020-2023  润新知