导航:首页 > 编程语言 > 汉诺塔c语言编程

汉诺塔c语言编程

发布时间:2024-09-04 02:54:30

① C语言汉诺塔问题,请问这个n=3的详细步骤是什么呀,大一新生没听懂

这是汉诺塔的算法的问题。程序本身很简单。

汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

这个主要是看算法,再一个就是递归的学习,程序本身非常简单。

② C璇瑷瀹为獙棰樷斺旀眽璇哄

銆愪緥銆慔anoi濉旈梾棰
涓鍧楁澘涓婃湁涓夋牴阍堬纴A锛孊锛孋銆侫阍堜笂濂楁湁64涓澶у皬涓岖瓑镄勫浑鐩桡纴澶х殑鍦ㄤ笅锛屽皬镄勫湪涓娿傚傚浘5.4镓绀恒傝佹妸杩64涓鍦嗙洏浠峣阍堢Щ锷–阍堜笂锛屾疮娆″彧鑳界Щ锷ㄤ竴涓鍦嗙洏锛岀Щ锷ㄥ彲浠ュ熷姪B阍堣繘琛屻备絾鍦ㄤ换浣曟椂鍊欙纴浠讳綍阍堜笂镄勫浑鐩橀兘蹇呴’淇濇寔澶х洏鍦ㄤ笅锛屽皬鐩桦湪涓娿傛眰绉诲姩镄勬ラゃ
链棰樼畻娉曞垎鏋愬备笅锛岃続涓婃湁n涓鐩桦瓙銆
濡傛灉n=1锛屽垯灏嗗浑鐩树粠A鐩存帴绉诲姩鍒癈銆
濡傛灉n=2锛屽垯锛
1.灏咥涓婄殑n-1(绛変簬1)涓鍦嗙洏绉诲埌B涓婏绂
2.鍐嶅皢A涓婄殑涓涓鍦嗙洏绉诲埌C涓婏绂
3.链钖庡皢B涓婄殑n-1(绛変簬1)涓鍦嗙洏绉诲埌C涓娿
濡傛灉n=3锛屽垯锛
A. 灏咥涓婄殑n-1(绛変簬2锛屼护鍏朵负n`)涓鍦嗙洏绉诲埌B(鍊熷姪浜嶤)锛屾ラゅ备笅锛
(1)灏咥涓婄殑n`-1(绛変簬1)涓鍦嗙洏绉诲埌C涓娿
(2)灏咥涓婄殑涓涓鍦嗙洏绉诲埌B銆
(3)灏咰涓婄殑n`-1(绛変簬1)涓鍦嗙洏绉诲埌B銆
B. 灏咥涓婄殑涓涓鍦嗙洏绉诲埌C銆
C. 灏咮涓婄殑n-1(绛変簬2锛屼护鍏朵负n`)涓鍦嗙洏绉诲埌C(鍊熷姪A)锛屾ラゅ备笅锛
(1)灏咮涓婄殑n`-1(绛変簬1)涓鍦嗙洏绉诲埌A銆
(2)灏咮涓婄殑涓涓鐩桦瓙绉诲埌C銆
(3)灏咥涓婄殑n`-1(绛変簬1)涓鍦嗙洏绉诲埌C銆
鍒版わ纴瀹屾垚浜嗕笁涓鍦嗙洏镄勭Щ锷ㄨ繃绋嬨
浠庝笂闱㈠垎鏋愬彲浠ョ湅鍑猴纴褰搉澶т簬绛変簬2镞讹纴绉诲姩镄勮繃绋嫔彲鍒呜В涓轰笁涓姝ラわ细
绗涓姝 鎶夹涓婄殑n-1涓鍦嗙洏绉诲埌B涓婏绂
绗浜屾 鎶夹涓婄殑涓涓鍦嗙洏绉诲埌C涓婏绂
绗涓夋 鎶夿涓婄殑n-1涓鍦嗙洏绉诲埌C涓婏绂鍏朵腑绗涓姝ュ拰绗涓夋ユ槸绫诲悓镄勚
褰搉=3镞讹纴绗涓姝ュ拰绗涓夋ュ张鍒呜В涓虹被钖岀殑涓夋ワ纴鍗虫妸n`-1涓鍦嗙洏浠庝竴涓阍堢Щ鍒板彟涓涓阍堜笂锛岃繖閲岀殑n`=n-1銆 鏄剧劧杩欐槸涓涓阃掑綊杩囩▼锛屾嵁姝ょ畻娉曞彲缂栫▼濡备笅锛
move(int n,int x,int y,int z)
{
if(n==1)
printf("%c-->%c\n",x,z);
else
{
move(n-1,x,z,y);
printf("%c-->%c\n",x,z);
move(n-1,y,x,z);
}
}
main()
{
int h;
printf("\ninput number:\n");
scanf("%d",&h);
printf("the step to moving %2d diskes:\n",h);
move(h,'a','b','c');
}

浠庣▼搴忎腑鍙浠ョ湅鍑,move鍑芥暟鏄涓涓阃掑綊鍑芥暟锛屽畠链夊洓涓褰㈠弬n,x,y,z銆俷琛ㄧず鍦嗙洏鏁帮纴x,y,z鍒嗗埆琛ㄧず涓夋牴阍堛俶ove 鍑芥暟镄勫姛鑳芥槸鎶妜涓婄殑n涓鍦嗙洏绉诲姩鍒皕涓娿傚綋n==1镞讹纴鐩存帴鎶妜涓婄殑鍦嗙洏绉昏呖z涓婏纴杈揿嚭x鈫抸銆傚俷!=1鍒椤垎涓轰笁姝ワ细阃掑綊璋幂敤move鍑芥暟锛屾妸n-1涓鍦嗙洏浠巟绉诲埌y锛涜緭鍑簒鈫抸锛涢掑綊璋幂敤move鍑芥暟锛屾妸n-1涓鍦嗙洏浠巠绉诲埌z銆傚湪阃掑綊璋幂敤杩囩▼涓璶=n-1锛屾晠n镄勫奸愭¢掑噺锛屾渶钖峦=1镞讹纴缁堟㈤掑綊锛岄愬眰杩斿洖銆傚綋n=4 镞剁▼搴忚繍琛岀殑缁撴灉涓猴细
input number:
4
the step to moving 4 diskes:
a鈫抌
a鈫抍
b鈫抍
a鈫抌
c鈫抋
c鈫抌
a鈫抌
a鈫抍
b鈫抍
b鈫抋
c鈫抋
b鈫抍
a鈫抌
a鈫抍
b鈫抍

阅读全文

与汉诺塔c语言编程相关的资料

热点内容
javaweb绝对路径 浏览:494
python通过字节传输 浏览:165
android启动service的方法 浏览:234
python股票决策 浏览:886
linuxvim复制行 浏览:367
文件夹多张图片按顺序命名 浏览:802
韩国hcc压缩机 浏览:900
苹果手机截屏被app发现怎么办 浏览:555
linux的进程调度原理 浏览:628
广东程序员网站有哪些 浏览:481
luac编辑后还需要加密吗 浏览:647
解压小动画吃披萨和芬达 浏览:565
王者荣耀怎么互转安卓 浏览:704
php获取股票信息 浏览:150
java文件名和类名不一样怎么编译 浏览:622
优盘里文件夹太多可以合并吗 浏览:601
php类数据库操作数据库 浏览:85
加密货币最近发生的事 浏览:260
单片机启动代码 浏览:438
16进制单片机数字代码 浏览:188