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

  • 相关阅读:
    iPhone 移植到 iPad:
    在Xcode4 中将iPhone使用的xib转换成iPad使用的xib
    IOS7开发~Xcode5制作framework
    汇总iOS开发中需要用到的开源库
    Objective-C学习笔记 利用协议实现回调函数
    xcode 4 制作通用静态库
    (难)Codeforces Round #406 (Div. 2) D题Legacy(线段树+最短路)解题报告
    (十字链表)CodeForces
    (并查集)poj1182——食物链
    (dp)17bupt新生赛——B. Hmz 的女装
  • 原文地址:https://www.cnblogs.com/mengqiqi/p/2693885.html
Copyright © 2011-2022 走看看