最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言漢諾塔的簡(jiǎn)單了解

 更新時(shí)間:2021年02月08日 14:24:10   作者:daener  
這篇文章主要給大家介紹了關(guān)于C語(yǔ)言漢諾塔的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

漢諾塔詳解

以4層為例

以下為我的拙見,還希望大佬雅正

要把漢諾塔移動(dòng)到c 需要把1,2,3層移到b 把4移動(dòng)到c 在吧123移動(dòng)到b

但是一次只能動(dòng)一塊 所以我們目前要做的就是把上面三塊移動(dòng)到b

那就需要把1 2移動(dòng)到c

由此我們可以推出要把1,2移動(dòng)到c,只需要把1移動(dòng)到b

這里我們發(fā)現(xiàn)有很多重復(fù)的自相似動(dòng)作

我們就可以設(shè)計(jì)遞歸 遞歸需要1,遞歸體 2 出口。

遞歸體

移動(dòng)n-1個(gè)盤子和1個(gè)盤子和n個(gè)盤子過程都是相似的

但是每次放入的桿子不一樣。

出口

n=1時(shí)只剩一個(gè)盤子,直接移動(dòng)到c即可

hanoi(n ,A , B , C)

N 移動(dòng)數(shù)量

A 出發(fā)地

B 借助地

C 終點(diǎn)

這個(gè)函數(shù)的意思就是有n個(gè)盤子從A出發(fā)借助B來到C

現(xiàn)在有n層漢諾塔 就需要把上面n-1層移動(dòng)到B

hanoi(n-1,A,C,B)

這個(gè)函數(shù)就是我們要把n-1個(gè)盤子從A借助C移動(dòng)到B

move(a,c)現(xiàn)在不需要再借助了 可以直接從a移動(dòng)到c

接下來我們就要借助A吧剩下n-1個(gè)盤子移動(dòng)到C了

hanoi(n-1,B,A,C)即可完成

遞歸出口

n<=1

在這里插入代碼片
```// 漢諾塔問題
//輸出移動(dòng)的步驟 
#include <stdio.h>
//記錄步數(shù) 
int i = 1;
//n 第幾號(hào)盤移動(dòng), from 移動(dòng)塔 to 目標(biāo)塔 
void move(int n, char from, char to) {
 printf("第%d次移動(dòng)第%d號(hào)盤: %c----->%c\n", i++, n, from, to);
}

void hanoi(int n, char from, char mid, char to) {
 if (n == 1) {
  move(n, from, to);//只有一個(gè)盤子是直接將初塔上的盤子移動(dòng)到目的地
 }//函數(shù)出口
 else {
  hanoi(n - 1, from, to, mid);//先將初始塔的前n-1個(gè)盤子借助目的塔移動(dòng)到借用塔上
  move(n, from, to);  //將剩下的一個(gè)盤子移動(dòng)到目的塔上
  hanoi(n - 1, mid, from, to);//最后將借用塔上的n-1個(gè)盤子移動(dòng)到目的塔上
 }
}

int main() {
 printf("請(qǐng)輸入盤子的個(gè)數(shù):\n");
 int n;
 scanf_s("%d", &n);
 char x = 'A', y = 'B', z = 'C';
 printf("盤子移動(dòng)情況如下:\n");
 hanoi(n, x, y, z);
 return 0;
}

總結(jié)

到此這篇關(guān)于C語(yǔ)言漢諾塔的文章就介紹到這了,更多相關(guān)C語(yǔ)言漢諾塔內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

乌恰县| 瓦房店市| 青川县| 凤庆县| 汉中市| 弋阳县| 资溪县| 德格县| 昆山市| 和静县| 达拉特旗| 疏勒县| 汤阴县| 内乡县| 清河县| 张家川| 沅陵县| 阿荣旗| 怀化市| 十堰市| 德钦县| 桦川县| 南宫市| 武强县| 麦盖提县| 章丘市| 肃南| 慈溪市| 广德县| 奉新县| 正蓝旗| 佛坪县| 宁陕县| 南丰县| 屏东县| 永胜县| 叶城县| 轮台县| 南雄市| 武山县| 高碑店市|