遞迴斐波那契數列和漢諾塔

2021-10-11 11:16:41 字數 881 閱讀 7100

程式呼叫自身的程式設計技巧稱為遞迴

在高階語言中,函式呼叫自己和呼叫其他函式並沒有本質的不同。我們把乙個直接呼叫自己或通過一系列的呼叫語句間接地呼叫自己的函式,稱作遞迴函式

斐波那契數列指的是這樣乙個數列:

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-anzoocxp-1607230920088)(

這個數列從第3項開始,每一項都等於前兩項之和。

斐波那契數列的遞迴實現

int

fib(

int i)

注意:每個遞迴定義必須至少有乙個條件,當滿足這個條件時遞迴不在進行,即函式不再呼叫自身而是返回

漢諾塔

演算法分析:

第一次移動,要把a柱子上的前n-1個移動到b柱子上;

第二次移動,直接把a柱子上的最後乙個移動到c柱子上;

第三次移動,把b柱子上的n-1個柱子通過柱子a移動到柱子c上。

**實現

// 漢諾塔

#include

void

hanoi

(int n,

char a,

char b,

char c)

//這裡代表將a柱子上的盤子借助b柱子移動到c柱子

else

}int

main()

遞迴 斐波那契數列 漢諾塔

遞迴 在乙個方法 函式 的內部呼叫該方法 函式 本身的程式設計方式。遞迴 public static void print int i public class testfebonacci 列印第n項斐波那契數列 public static int febonacci int i else publ...

遞迴 漢諾塔問題和斐波那契數列

1.遞迴 遞迴簡單來講就是方法內部呼叫方法本身,它有如下要求 1.必須要有臨界條件,也就是遞迴必須要有出口,不能無限制的向深層呼叫方法,否則會棧溢位。2.漢諾塔問題 問題 有三根柱子 a,b,c。a柱子上有3個盤子,分別是1,2,3,如何使用最少的移動次數,將3個盤子從柱子a移動到柱子c?規則 1....

演算法 漢諾塔 斐波那契數列求和

問題描述 漢諾塔 又稱河內塔 問題是源於印度乙個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。程式實...