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

java中方法遞歸的簡單示例

 更新時間:2020年12月07日 11:37:58   作者:Noa-Noa  
這篇文章主要給大家介紹了關(guān)于java中方法遞歸的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、遞歸的思路

一個方法在執(zhí)行時,調(diào)用自身被稱為“遞歸”。

遞歸相當(dāng)于數(shù)學(xué)歸納法,有一個起始條件,有一個遞推公式。

遞歸可以分為:單路遞歸和多路遞歸(如二叉樹和斐波那契數(shù)列)。

二、代碼舉例

1、n的階乘

 //n的階乘
 public static int fac(int num){
  if(num == 1){
   return 1;
  }
  return num * fac(num-1);
 }
 public static void main(String[] args) {
  int n = 5;
  System.out.println("result = " + fac(n));
 }

運(yùn)行結(jié)果

2、按照順序打印一個數(shù)字的每一位

 //按照順序打印一個數(shù)字的每一位
 public static void print(int n){
  if( n > 9 ){
   print( n / 10);
  }
  System.out.print( n % 10 );

 }
 public static void main(String[] args) {
  print(12345);
 }

運(yùn)行結(jié)果

3、輸入一個非負(fù)整數(shù),返回組成他的數(shù)字之和,如輸入1729,則返回1+7+2+9=19

public static int sum(int n){
  if(n < 10){
   return n;
  }
  return n %10 + sum( n/10 );

 }
 public static void main(String[] args) {
  int n = 525615;
  int ret = sum( n);
  System.out.println("the sum of "+n +" = "+ ret);
 }

運(yùn)行結(jié)果

4、求斐波那契數(shù)列的第n項(xiàng)

斐波那契數(shù)列:1 1 2 3 5 8 13

 public static int fib(int n){
  if(n == 1 || n == 2){
   return 1;
  }
  return fib(n - 1) + fib(n - 2 );
 }
 public static void main(String[] args) {
  System.out.println(fib(10));
 }

運(yùn)行結(jié)果

**注意:當(dāng)n的值越來越大時,程序運(yùn)行的速度很慢,原因是進(jìn)行了大量的重復(fù)運(yùn)算。所以對于斐波那契數(shù)列,一般采用迭代的代碼版本。

public static int fib(int n){
  int n1 = 1;
  int n2 = 1;
  int num = 0;
  for( int i=3; i<=n ;i++){
   num = n1 + n2;
   n1 = n2;
   n2 = num;
  }
  return num;
 }
 public static void main(String[] args) {
  System.out.println(fib(10));
 }

運(yùn)行結(jié)果

需要注意的是,如果編譯時出現(xiàn)以下錯誤,說明棧溢出,要仔細(xì)檢查代碼的終止條件是否沒有寫或者寫錯。

總結(jié)

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

相關(guān)文章

  • java 數(shù)據(jù)結(jié)構(gòu)中棧和隊(duì)列的實(shí)例詳解

    java 數(shù)據(jù)結(jié)構(gòu)中棧和隊(duì)列的實(shí)例詳解

    這篇文章主要介紹了java 數(shù)據(jù)結(jié)構(gòu)中棧和隊(duì)列的實(shí)例詳解的相關(guān)資料,主要使用數(shù)組與線性表的方法來實(shí)現(xiàn),需要的朋友可以參考下
    2017-09-09
  • 淺析JDBC的使用方法

    淺析JDBC的使用方法

    這篇文章主要介紹了JDBC的使用方法,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-08-08
  • GSON實(shí)現(xiàn)Java對象的JSON序列化與反序列化的實(shí)例教程

    GSON實(shí)現(xiàn)Java對象的JSON序列化與反序列化的實(shí)例教程

    GSON是Google開發(fā)并開源的一個Java的JSON轉(zhuǎn)換庫,這里我們將來講解GSON實(shí)現(xiàn)Java對象的JSON序列化與反序列化的實(shí)例教程,需要的朋友可以參考下
    2016-06-06
  • SpringBoot基于Redis的分布式鎖實(shí)現(xiàn)過程記錄

    SpringBoot基于Redis的分布式鎖實(shí)現(xiàn)過程記錄

    Redis是一套 key-value 高性能數(shù)據(jù)庫,使用它可以大大提高我們的開發(fā)效率,在SpringBoot中,自動配置也幫我們節(jié)約了大量的配置,下面這篇文章主要給大家介紹了關(guān)于SpringBoot基于Redis的分布式鎖實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • 帶你入門Java的泛型

    帶你入門Java的泛型

    這篇文章主要給大家介紹了關(guān)于Java中泛型使用的簡單方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Java實(shí)戰(zhàn)之小米交易商城系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)之小米交易商城系統(tǒng)的實(shí)現(xiàn)

    這篇文章將利用Java實(shí)現(xiàn)小米交易商城系統(tǒng),文中采用的技術(shù)有:JSP?、Spring、SpringMVC、MyBatis等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-04-04
  • Mybatis的一級緩存和二級緩存原理分析與使用

    Mybatis的一級緩存和二級緩存原理分析與使用

    mybatis-plus 是一個 Mybatis 的增強(qiáng)工具,在 Mybatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生,這篇文章帶你了解Mybatis的一級和二級緩存
    2021-11-11
  • springsecurity實(shí)現(xiàn)攔截器的使用示例

    springsecurity實(shí)現(xiàn)攔截器的使用示例

    Spring Security 可以替代攔截器,同時還可以提供更加細(xì)粒度的權(quán)限控制和身份認(rèn)證,本文就來介紹一下springsecurity實(shí)現(xiàn)攔截器的使用示例,感興趣的可以了解一下
    2023-10-10
  • 分析java中全面的單例模式多種實(shí)現(xiàn)方式

    分析java中全面的單例模式多種實(shí)現(xiàn)方式

    單例模式是一種常用的軟件設(shè)計(jì)模式,單例對象的類只能允許一個實(shí)例存在。許多時候整個系統(tǒng)只需要擁有一個的全局對象,有利于協(xié)調(diào)系統(tǒng)整體的行為。比如在某個服務(wù)器程序中,該服務(wù)器的配置信息存放在一個文件中。本文將介紹它的思想和多種實(shí)現(xiàn)方式
    2021-06-06
  • HashMap線程不安全問題解析

    HashMap線程不安全問題解析

    這篇文章主要介紹了HashMap線程不安全問題解析,HashMap的線程不安全體現(xiàn)在會造成死循環(huán)、數(shù)據(jù)丟失、數(shù)據(jù)覆蓋等問題,其中死循環(huán)和數(shù)據(jù)丟失是在JDK1.7中出現(xiàn)的問題,在JDK1.8中已經(jīng)得到解決,但是1.8中仍會有數(shù)據(jù)覆蓋這樣的問題,需要的朋友可以參考下
    2023-11-11

最新評論