zoukankan      html  css  js  c++  java
  • 每日一练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⊙)嗯嗯……

  • 相关阅读:
    Ansible 实战之部署Web架构
    Ansible Ad-Hoc命令集
    Ansible 基础知识
    memcached监控脚本
    Django2.1.1与xadmin0.6.0遇到的坑(一)
    django1.11 启动错误:Generator expression must be parenthesized
    使用Git Bash从Git上下载代码到本地以及上传代码到码云Git
    PyCharm如何导入python项目,并配置虚拟环境
    PYTHON中的字典(DICT),列表(LIST),元组(TUPLE)
    python2 和 python3共存的常见使用(如安装虚拟环境的问题)
  • 原文地址:https://www.cnblogs.com/mengqiqi/p/2693885.html
Copyright © 2011-2022 走看看