成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

遞歸算法c語言 C語言中的遞歸程序可以用非遞歸算法實現(xiàn)嗎?

C語言中的遞歸程序可以用非遞歸算法實現(xiàn)嗎?是的,所有遞歸都可以用循環(huán)和堆棧等價重寫。漢諾塔遞歸算法?1//河內(nèi)塔2#包括和酒店。H>3 void Hanoi(int n,char a,char b

C語言中的遞歸程序可以用非遞歸算法實現(xiàn)嗎?

是的,所有遞歸都可以用循環(huán)和堆棧等價重寫。

漢諾塔遞歸算法?

1//河內(nèi)塔

2#包括和酒店。H>

3 void Hanoi(int n,char a,char b,char c)//這里表示在b列的幫助下將a列上的圖版移到c列

4{if(1==n)//如果是圖版,將a列上的圖版移到c列

5{

6 Printf(%c-->%cn,a,c)

7}

8 else

9{

10 Hanoi n-1,a,c,b)//move n-1 plates on column a to column B with the column C

11 printf(%C-->%Cn“,a,C)//將a列的最后一塊板移到C列

12 Hanoi(n-1,B,a,C)//然后將B列的n-1板移到C

13}

14}

15 int main()

16{int n

17 printf輸入磁盤數(shù):”)

18 scanf(%d“,&n)

19 Hanoi(n,%a”,%B“,%C”)

20返回0

21}

復(fù)制代碼

這是一個遞歸算法。

在第一步中,n-1塊黃金通過C從a移到B

不是一步,而是一個階段(遞歸調(diào)用)。

假設(shè)已完成,第二步即可完成。

在上述兩個步驟的基礎(chǔ)上,在第三個步驟中,n-1塊黃金從B通過a移動到C,所有工作都完成了。

========

關(guān)于如何完成“n-1塊黃金由a經(jīng)C移到B”,需要“老和尚給小和尚講故事”

第一步是先移n-2塊黃金,再移n-1塊黃金,最后將n-2塊黃金移到位。