真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用Java怎么編寫一個遞歸程序-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)使用Java怎么編寫一個遞歸程序,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),新田企業(yè)網(wǎng)站建設(shè),新田品牌網(wǎng)站建設(shè),網(wǎng)站定制,新田網(wǎng)站建設(shè)報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,新田網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

遞歸的定義


遞歸(recursion):以此類推是遞歸的基本思想,將規(guī)模大的問題轉(zhuǎn)化為規(guī)模小的問題來解決。

遞歸的要素

自定義遞歸函數(shù),并確定函數(shù)的基本功能
例如Java從鍵盤輸入一個數(shù),求輸入這個數(shù)的階乘。這個時候把輸入的數(shù)字作為形參

int diGuiTest(int n ){
}

找到遞歸函數(shù)循環(huán)結(jié)束條件
在求階乘的時候,我們不妨做出如下思考,例如輸入的n是5,那么5!是5 * 43 * 2 * 1,那是不是可以寫成
n
f(n-1)?,程序運行過程如下:
5* f(4)
f(4)相當于重新調(diào)用了函數(shù),形參為4
5 * 4* f(n-1)
f(3)相當于重新調(diào)用了函數(shù),形參為3
5 * 4* 3* f(n-1)
f(2)相當于重新調(diào)用了函數(shù),形參為2
5 * 4* 3 * 2* f(n-1)
f(1)相當于重新調(diào)用了函數(shù),形參為1
很容易發(fā)現(xiàn),這時候如果遞歸調(diào)用到n為1的時候,就要結(jié)束調(diào)用自身
代碼如下:

int diGuiTest(int n ){
if(n==1){
return 1;
}
else{
return n*f(n-1);
}
}

代碼示例

求1–100之間所有自然數(shù)的和

int sum (int n ){
if(n==1){
return 1 ;
}
else{
return n+sum(n-1);
}
}

斐波拉契數(shù)列
斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列,因數(shù)學家萊昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數(shù)列”,指的是這樣一個數(shù)列:0、1、1、2、3、5、8、13、21、34、……在數(shù)學上,斐波那契數(shù)列以如下被以遞推的方法定義:F(0)=0,F(xiàn)(1)=1, F(n)=F(n - 1)+F(n - 2) (n ≥ 2,n ∈ N*)

int fibonacci(int n ){

if (n<=1){
return n;
}
else {
return fibonacci(n-1)+fibonacci(n-2);
}

}

漢諾塔問題


使用Java怎么編寫一個遞歸程序


首先我們考慮最簡單的情況:


使用Java怎么編寫一個遞歸程序


將最上面的一塊放到B,再將最下面一塊放到C,再把最上面一塊從B放到C即可

使用Java怎么編寫一個遞歸程序

public class Hanio {
  public static void main(String[] args) {
    char A='A';
    char B='B';
    char C='C';
    hannio(3,A,B,C);
  }
  static  void hannio(int paltfrom,char A,char B, char C){
    if (paltfrom==1){
      move (A,C);
    }else {
      hannio(paltfrom-1,A,C,B);//上面兩個盤子,通過C柱到B柱
      move (A,C);
      hannio(paltfrom-1,B,A,C);//
    }
  }
  static  void move(char A,char B){
    System.out.println(A+"---->"+B);
  }
}

關(guān)于使用Java怎么編寫一個遞歸程序就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


當前文章:使用Java怎么編寫一個遞歸程序-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://weahome.cn/article/cejdgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部