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

Java遞歸簡單實現(xiàn)n的階乘

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

1.遞歸的基本概念

在說什么是遞歸之前,我想大家定見過這個表情包吧

什么是遞歸:

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

遞歸的用途:

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

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    SpringBoot整合ELK做日志超完整詳細教程

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

    Java中的升序和降序問題

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

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

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

    詳解常用的Spring Bean擴展接口

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

最新評論