欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java遞歸簡(jiǎn)單實(shí)現(xiàn)n的階乘

 更新時(shí)間:2022年01月24日 17:36:32   作者:HairLossException  
這篇文章主要介紹了Java遞歸簡(jiǎn)單實(shí)現(xiàn)n的階乘,遞歸(recursion)就是子程序(或函數(shù))直接調(diào)用自己或通過(guò)一系列調(diào)用語(yǔ)句間接調(diào)用自己,是一種描述問(wèn)題和解決問(wèn)題的基本方法,下面我們舉一個(gè)小小的例子詳情了解一下,需要的朋友可以參考下

1.遞歸的基本概念

在說(shuō)什么是遞歸之前,我想大家定見(jiàn)過(guò)這個(gè)表情包吧

什么是遞歸:

程序調(diào)用自身的編程技巧稱為遞歸( recursion)遞歸的能力在于用有限的語(yǔ)句來(lái)定義對(duì)象的無(wú)限集合。一般來(lái)說(shuō),遞歸需要有邊界條件、遞歸前進(jìn)段和遞歸返回段。當(dāng)邊界條件不滿足時(shí),遞歸前進(jìn);當(dāng)邊界條件滿足時(shí),遞歸返回。

遞歸的用途:

遞歸可用于解決各種數(shù)學(xué)問(wèn)題:八皇后問(wèn)題、漢諾塔問(wèn)題、階乘問(wèn)題、迷宮問(wèn)題等
遞歸也可用于各種算法:快排、歸并排序、二分查找、分治算法等

2.遞歸的重要規(guī)則

  • 執(zhí)行一個(gè)方法就創(chuàng)建一個(gè)新的受保護(hù)的獨(dú)立??臻g
  • 方法的局部變量是獨(dú)立的
  • 如果方法使用的是引用數(shù)據(jù)類型的變量那么就共享引用類型的數(shù)據(jù)
  • 遞歸必須向退出遞歸的條件逼近
  • 當(dāng)一個(gè)方法執(zhí)行完畢或者遇到return就會(huì)返回,遵守誰(shuí)調(diào)用就將結(jié)果返回給誰(shuí)

3.利用遞歸實(shí)現(xiàn)n的階乘

代碼實(shí)現(xiàn):

public class RecursionTest {
    public static void main(String[] args) {
        int x = factorial(4);
        System.out.println(x); //輸出結(jié)果24
    }

    public static int factorial(int n){
        //負(fù)數(shù)沒(méi)有階乘,如果參數(shù)是負(fù)數(shù)就拋出異常
        if (n<0){
            throw new RuntimeException("負(fù)數(shù)沒(méi)有階乘");
        }
        //0和1的階乘都是1
        if (n == 1||n ==0){
            return 1;
        }else {
            //如果參數(shù)不是負(fù)數(shù)且大于1就遞歸調(diào)用factorial方法
            int m = factorial(n - 1)*n;
            return m;
        }
    }
}

到此這篇關(guān)于Java遞歸簡(jiǎn)單實(shí)現(xiàn)n的階乘的文章就介紹到這了,更多相關(guān)Java遞歸內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java教程之引用類型數(shù)組和繼承的意義詳解

    Java教程之引用類型數(shù)組和繼承的意義詳解

    這篇文章主要介紹了Java教程之引用類型數(shù)組和繼承的意義詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Java面向?qū)ο缶幊讨惖睦^承詳解

    Java面向?qū)ο缶幊讨惖睦^承詳解

    這篇文章主要介紹了Java面向?qū)ο缶幊讨惖睦^承,結(jié)合實(shí)例形式較為詳細(xì)的分析了Java面向?qū)ο缶幊填惖母拍?、功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-02-02
  • Struts2學(xué)習(xí)筆記(9)-Result配置全局結(jié)果集

    Struts2學(xué)習(xí)筆記(9)-Result配置全局結(jié)果集

    這篇文章主要介紹Struts2中使用Result配置全局結(jié)果集的方法,希望能給大家做一個(gè)參考。
    2016-06-06
  • Java 設(shè)計(jì)模式原則之迪米特法則詳解

    Java 設(shè)計(jì)模式原則之迪米特法則詳解

    這篇文章主要介紹了Java 設(shè)計(jì)模式原則之迪米特法則詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 詳解SpringMVC中設(shè)置靜態(tài)資源不被攔截的問(wèn)題

    詳解SpringMVC中設(shè)置靜態(tài)資源不被攔截的問(wèn)題

    這篇文章主要介紹了詳解SpringMVC中設(shè)置靜態(tài)資源不被攔截的問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • java實(shí)現(xiàn)對(duì)map的字典序排序操作示例

    java實(shí)現(xiàn)對(duì)map的字典序排序操作示例

    這篇文章主要介紹了java實(shí)現(xiàn)對(duì)map的字典序排序操作,結(jié)合實(shí)例形式分析了java參照微信官網(wǎng)算法實(shí)現(xiàn)的字典序排序操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • SpringBoot整合ELK做日志超完整詳細(xì)教程

    SpringBoot整合ELK做日志超完整詳細(xì)教程

    本文詳細(xì)介紹了如何在springboot中快速接入ELK的過(guò)程,ELK可以說(shuō)在實(shí)際項(xiàng)目中具有很好的適用價(jià)值,不管是小項(xiàng)目,還是中大型項(xiàng)目,都具備普適參考性,值得深入了解和學(xué)習(xí),感興趣的朋友一起看看吧
    2024-01-01
  • Java中的升序和降序問(wèn)題

    Java中的升序和降序問(wèn)題

    這篇文章主要介紹了Java中的升序和降序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • springboot的http.server.requests服務(wù)請(qǐng)求流程源碼

    springboot的http.server.requests服務(wù)請(qǐng)求流程源碼

    這篇文章主要為大家介紹了springboot的http.server.requests服務(wù)請(qǐng)求流程源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 詳解常用的Spring Bean擴(kuò)展接口

    詳解常用的Spring Bean擴(kuò)展接口

    本篇文章主要介紹了一些常用的Spring Bean擴(kuò)展接口以及它們的簡(jiǎn)單用法,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-05-05

最新評(píng)論