汉诺塔C语言程序 大一汉诺塔C语言问题,求代码

\u5982\u4f55\u505a\u4e00\u4e2aC\u8bed\u8a00\u7f16\u7a0b\u7684\u6c49\u8bfa\u5854\u6e38\u620f\uff1f\u8981\u6709\u6e90\u4ee3\u7801\u3002

#include
void move(char x,char y)
{
printf("%c-->%c\n",x,y);
}
void hanoi(int n,char one ,char two,char three)
{
if(n==1) move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
main()
{
int m;
printf("input the number of disks:");
scanf("%d",&m);
printf("the step to moving %3d diskes:\n",m);
hanoi(m,'A','B','C');
}
\u7b97\u6cd5\u4ecb\u7ecd\uff1a
\u5176\u5b9e\u7b97\u6cd5\u975e\u5e38\u7b80\u5355\uff0c\u5f53\u76d8\u5b50\u7684\u4e2a\u6570\u4e3an\u65f6\uff0c\u79fb\u52a8\u7684\u6b21\u6570\u5e94\u7b49\u4e8e2^n \u2013 1\uff08\u6709\u5174\u8da3\u7684\u53ef\u4ee5\u81ea\u5df1\u8bc1\u660e\u8bd5\u8bd5\u770b\uff09\u3002\u540e\u6765\u4e00\u4f4d\u7f8e\u56fd\u5b66\u8005\u53d1\u73b0\u4e00\u79cd\u51fa\u4eba\u610f\u6599\u7684\u7b80\u5355\u65b9\u6cd5\uff0c\u53ea\u8981\u8f6e\u6d41\u8fdb\u884c\u4e24\u6b65\u64cd\u4f5c\u5c31\u53ef\u4ee5\u4e86\u3002\u9996\u5148\u628a\u4e09\u6839\u67f1\u5b50\u6309\u987a\u5e8f\u6392\u6210\u54c1\u5b57\u578b\uff0c\u628a\u6240\u6709\u7684\u5706\u76d8\u6309\u4ece\u5927\u5230\u5c0f\u7684\u987a\u5e8f\u653e\u5728\u67f1\u5b50A\u4e0a\uff0c\u6839\u636e\u5706\u76d8\u7684\u6570\u91cf\u786e\u5b9a\u67f1\u5b50\u7684\u6392\u653e\u987a\u5e8f\uff1a\u82e5n\u4e3a\u5076\u6570\uff0c\u6309\u987a\u65f6\u9488\u65b9\u5411\u4f9d\u6b21\u6446\u653e A B C\uff1b
\u82e5n\u4e3a\u5947\u6570\uff0c\u6309\u987a\u65f6\u9488\u65b9\u5411\u4f9d\u6b21\u6446\u653e A C B\u3002
\uff081\uff09\u6309\u987a\u65f6\u9488\u65b9\u5411\u628a\u5706\u76d81\u4ece\u73b0\u5728\u7684\u67f1\u5b50\u79fb\u52a8\u5230\u4e0b\u4e00\u6839\u67f1\u5b50\uff0c\u5373\u5f53n\u4e3a\u5076\u6570\u65f6\uff0c\u82e5\u5706\u76d81\u5728\u67f1\u5b50A\uff0c\u5219\u628a\u5b83\u79fb\u52a8\u5230B\uff1b\u82e5\u5706\u76d81\u5728\u67f1\u5b50B\uff0c\u5219\u628a\u5b83\u79fb\u52a8\u5230C\uff1b\u82e5\u5706\u76d81\u5728\u67f1\u5b50C\uff0c\u5219\u628a\u5b83\u79fb\u52a8\u5230A\u3002
\uff082\uff09\u63a5\u7740\uff0c\u628a\u53e6\u5916\u4e24\u6839\u67f1\u5b50\u4e0a\u53ef\u4ee5\u79fb\u52a8\u7684\u5706\u76d8\u79fb\u52a8\u5230\u65b0\u7684\u67f1\u5b50\u4e0a\u3002\u5373\u628a\u975e\u7a7a\u67f1\u5b50\u4e0a\u7684\u5706\u76d8\u79fb\u52a8\u5230\u7a7a\u67f1\u5b50\u4e0a\uff0c\u5f53\u4e24\u6839\u67f1\u5b50\u90fd\u975e\u7a7a\u65f6\uff0c\u79fb\u52a8\u8f83\u5c0f\u7684\u5706\u76d8\u3002\u8fd9\u4e00\u6b65\u6ca1\u6709\u660e\u786e\u89c4\u5b9a\u79fb\u52a8\u54ea\u4e2a\u5706\u76d8\uff0c\u4f60\u53ef\u80fd\u4ee5\u4e3a\u4f1a\u6709\u591a\u79cd\u53ef\u80fd\u6027\uff0c\u5176\u5b9e\u4e0d\u7136\uff0c\u53ef\u5b9e\u65bd\u7684\u884c\u52a8\u662f\u552f\u4e00\u7684\u3002
\uff083\uff09\u53cd\u590d\u8fdb\u884c\uff081\uff09\uff082\uff09\u64cd\u4f5c\uff0c\u6700\u540e\u5c31\u80fd\u6309\u89c4\u5b9a\u5b8c\u6210\u6c49\u8bfa\u5854\u7684\u79fb\u52a8\u3002
\u6240\u4ee5\u7ed3\u679c\u975e\u5e38\u7b80\u5355\uff0c\u5c31\u662f\u6309\u7167\u79fb\u52a8\u89c4\u5219\u5411\u4e00\u4e2a\u65b9\u5411\u79fb\u52a8\u91d1\u7247\uff1a
\u59823\u9636\u6c49\u8bfa\u5854\u7684\u79fb\u52a8\uff1aA\u2192C,A\u2192B,C\u2192B,A\u2192C,B\u2192A,B\u2192C,A\u2192C
\u6c49\u8bfa\u5854\u95ee\u9898\u4e5f\u662f\u7a0b\u5e8f\u8bbe\u8ba1\u4e2d\u7684\u7ecf\u5178\u9012\u5f52\u95ee\u9898\uff0c\u4e0b\u9762\u6211\u4eec\u5c06\u7ed9\u51fa\u9012\u5f52\u548c\u975e\u9012\u5f52\u7684\u4e0d\u540c\u5b9e\u73b0\u6e90\u4ee3\u7801\u3002

#include
int step=0;
void move(char s, char t, int d){
int i,j;
step++;
printf("\u7b2c %d \u6b65: %c->%c\n",step,s,t);
}
void hanoi(char a, char b, char c, int n){
if(n==1){
move(a,b,n);
}else{
hanoi(a,c,b,n-1);
move(a,b,n);
hanoi(c,b,a,n-1);
}
}

int main(){
int i,n;
printf("n=?");
scanf("%d",&n);
hanoi('A','C','B',n);
return 0;
}

hanoi(int n,char a,char b,char c)
//将n个盘子从a通过b移动到c
{
if(n==1)
move(a,1,c); //将编号为1的盘子从a移动到c
else
{
hanoi(n-1,a,c,b);
move(a,n,c);//将编号为n的盘子从a移动到c
hanoi(n-1,b,a,c);
}

}

main()
{
int n;
void hanoi(int n,char a,char b,char c);
printf(";lease enter the number of disks to be moved:");
scanf("%d",&n);
hanoi(n,'a','b','c');
}
void hanoi(int n,char a,char b,char c)
{
if(n>0)
{hanoi(n-1,a,c,b);
printf("\n move disc %d from pile %c to %c",n,a,b);
hanoi(n-1,c,b,a)};
}

C++:
#include <iostream>
#include <string>
using namespace std;
//移动函数;
void move(char start,char finish)
{
cout << start <<"------->" <<finish <<endl;
}
//把n个盘子从start柱子借助temp移动到finish柱子;
void hanoi(int n, char start, char temp,char finish)
{
if(n == 1)
{
move(start,finish);
}
else
{
//简化问题;只要把最上面的n-1个盘子借助finish 移动到temp;
hanoi(n-1,start,finish,temp);
//此时start柱子只剩下最大的一个盘子;temp上有n-1个,finish上为空;
//把start 上最大的移动到finish上。
move(start,finish);
//此时start上为空,temp上n-1个,finish上最大的一个。
//把temp上的n-1个借助start全部移动到finish;
hanoi(n-1,temp,start,finish);
}
}
int main()
{
int n;
cout << "请输入盘子的个数:";
cin >>n;
hanoi(n,'A','B','C');
return 0;
}

  • 鐢c璇█缂栧啓绋嬪簭姹姹夎濉鐨勭Щ鍔ㄦ楠
    绛旓細涓烘偍鎺ㄨ崘: 姹夎濉旈棶棰 姹夎濉旈掑綊绠楁硶 姹夎濉攃璇█绋嬪簭浠g爜 C璇█鎴 姹夎濉旀槸浠涔 姹夎濉旀父鎴 C璇█閫掑綊姹夎濉 c璇█绋嬪簭璁捐 c璇█鍏ラ棬鑷 浠涔堟槸c璇█ 鍏朵粬绫讳技闂2014-11-25 澶т竴姹夎濉擟璇█闂,姹備唬鐮 35 2014-11-27 姹傜湡姝g悊瑙f眽璇哄闂鐨勭紪绋嬪ぇ绁炲洖绛斾竴涓,褰搉=3鏃,鐢╟璇█... 45 ...
  • C璇█姹夎濉闂
    绛旓細瀹氫箟涓涓叏灞鍙橀噺璁℃暟鍣紙閬垮厤閫掑綊鍑芥暟姣忔閮芥妸瀹冭祴鎴0锛夈绋嬪簭濡備笅锛歩nclude<stdio.h> void main(){ int hanoi(int n,char one,char two,char three);int m;int j;scanf("%d",&m);printf("%d\n",hanoi(m,'A','B','C'));} int j=0;int hanoi(int n,char one,char two,char ...
  • 姹C璇█姹夎濉婧愮爜(閫掑綊鍜岄潪閫掑綊閮借)
    绛旓細" %c-->%c\n", a, c);\x0d\x0a}\x0d\x0a\x0d\x0aint main(void)\x0d\x0a{\x0d\x0aint n, time = 0;;\x0d\x0aprintf("璇疯緭鍏姹夎濉鐨勭洏鏁:");\x0d\x0ascanf("%d", &n);\x0d\x0aprintf("%d涓洏鐨勬眽璇哄绉诲姩鏂规硶鏄細...
  • C璇█姹夎濉闂,璇烽棶杩欎釜n=3鐨勮缁嗘楠ゆ槸浠涔堝憖,澶т竴鏂扮敓娌″惉鎳俖鐧 ...
    绛旓細杩欐槸姹夎濉鐨勭畻娉曠殑闂銆绋嬪簭鏈韩寰堢畝鍗曘傛眽璇哄锛堝張绉娌冲唴濉锛夐棶棰樻槸婧愪簬鍗板害涓涓彜鑰佷紶璇寸殑鐩婃櫤鐜╁叿銆傚ぇ姊靛ぉ鍒涢犱笘鐣岀殑鏃跺欏仛浜嗕笁鏍归噾鍒氱煶鏌卞瓙锛屽湪涓鏍规煴瀛愪笂浠庝笅寰涓婃寜鐓уぇ灏忛『搴忔憺鐫64鐗囬粍閲戝渾鐩樸傚ぇ姊靛ぉ鍛戒护濠嗙綏闂ㄦ妸鍦嗙洏浠庝笅闈㈠紑濮嬫寜澶у皬椤哄簭閲嶆柊鎽嗘斁鍦ㄥ彟涓鏍规煴瀛愪笂銆傚苟涓旇瀹氾紝鍦ㄥ皬鍦嗙洏涓婁笉鑳芥斁澶у渾鐩...
  • 姹夎濉攃璇█绠楁硶銆傛敞鎰忔槸绠楁硶
    绛旓細鑻ラ渶瑕佸皢n涓洏瀛愪粠A绉诲姩鍒C灏遍渶瑕侊紙1锛夊皢n-1涓洏瀛愪粠A绉诲姩鍒癇锛涳紙2锛夊皢浣犵n涓粠A绉诲姩鍒癈锛涳紙3锛夊皢n-1涓洏瀛愬啀浠嶣绉诲姩鍒癈锛岃繖鏍峰氨鍙互瀹屾垚浜嗐傚鏋渘!=1锛屽垯闇瑕侀掑綊璋冪敤鍑芥暟锛屽皢A涓婄殑鍏朵粬鐩樺瓙鎸夌収浠ヤ笂鐨勪笁姝ョ户缁Щ鍔紝鐩村埌杈惧埌杈圭晫鏉′欢n=1涓烘銆傛濊矾娓呮浜嗭紝绋嬪簭灏卞ソ鐞嗚В浜嗐傜▼搴忎腑鐨勫叧閿...
  • C璇█姹夎濉(楂樺垎鎻愰棶)
    绛旓細hanio(n-1,a,c,b);锛堟彁闂細涓轰粈涔堝弬鏁拌缃负a,c,b锛塵ove(a,c);hanio(n-1,b,a,c); (鎻愰棶锛氳岃繖涓張璁剧疆鎴愪负b,a,c)鍏跺疄濡傛灉娓呮浜嗙Щ鍔ㄨ鍒,杩欎釜灏卞緢绠鍗曚簡.鍒嗘瀽鏈変袱涓洏瀛愮殑鎯呭喌,鏄剧劧涓:a-b a-c b-c 鍋囪鏈塶涓洏瀛,鎴戜滑涔熷彲浠ョ湅浣滀袱涓洏瀛,鍏朵腑鏈涓婇潰鐨勪竴涓负x,涓嬮潰鐨刵-1涓负...
  • 姹傜湡姝g悊瑙姹夎濉闂鐨勭數鑴戝ぇ绁炵粰鎴戣В绛斾竴涓,褰搉=3鏃,姹傜敤c璇█缂栧啓...
    绛旓細闂锛氭眰鐪熸鐞嗚В姹夎濉闂鐨勭數鑴戝ぇ绁炵粰鎴戣В绛斾竴涓嬶紝褰搉=3鏃讹紝姹傜敤c璇█缂栧啓鐨勬眽璇哄閫掑綊璋冪敤浠g爜鐨勮缁嗘墽 鍥炵瓟锛氭暎鍒嗗惂 浠涔堟槸姹夎濉旈棶棰 姹夎濉旓細姹夎濉旓紙鍙堢О娌冲唴濉锛夐棶棰樻槸婧愪簬鍗板害涓涓彜鑰佷紶璇寸殑鐩婃櫤鐜╁叿銆傚ぇ姊靛ぉ鍒涢犱笘鐣岀殑鏃跺欏仛浜嗕笁鏍归噾鍒氱煶鏌卞瓙锛屽湪涓鏍规煴瀛愪笂浠庝笅寰涓婃寜鐓уぇ灏忛『搴忔憺鐫64鐗囬粍閲...
  • c璇█闂,c璇█涓殑鍑芥暟澹版槑涓庡畾涔夋湁浠涔堝ソ澶?
    绛旓細閫氬父鎶婅兘瀹炵幇鏌愪竴鍔熻兘鎿嶄綔鎴栬繍绠楃殑閮ㄥ垎鎶藉嚭鏉ワ紝鍐欐垚鍑芥暟銆傚嚱鏁板0鏄庝笌瀹氫箟鐨勫ソ澶勬槸 涓绋嬪簭 姣旇緝绠娲侊紝闃呰鎬у己銆傜壒鍒槸鍦ㄩ渶瑕佸娆¤皟鐢ㄧ殑鎯呭喌涓嬶紝鍐欐垚鍑芥暟鍒欐洿濂姐備綘鐨勭▼搴忎腑锛屽嚱鏁板姛鑳芥槸瀹炵幇涓や釜鍙橀噺鐩稿噺锛岃繑鍥炲畠浠殑宸侻INUS( 9 , 4 ); 闃呰鎬у己锛孧INUS 鏄嫳鏂団滃噺鈥濓紝瀹规槗鑱旀兂鍒 9-4 鍑忔硶寰...
  • C璇█妗堜緥鏁欑▼鍐呭绠浠
    绛旓細鍦ㄧ10绔狅紝浣滆呯畝瑕佷粙缁嶄簡缁撴瀯浣撱佹寚閽堝拰鍏辩敤浣撶瓑楂樼骇涓婚锛屽府鍔╁鐢熸墿灞曠煡璇嗚閲庛傛渶鍚庝竴绔狅紝閫氳繃钁楀悕鐨姹夎濉闂鍜岀浉鍏虫父鎴绋嬪簭璁捐锛岃瀛︾敓鍦ㄨВ鍐冲疄闄呴棶棰樹腑娣卞寲瀵C璇█鐨勭悊瑙c傜壒鍒檮甯︾殑瀛︿範璧勬簮鍖呮嫭43涓暀瀛﹁浠跺拰鎵鏈変緥棰樺強涔犻鐨勬簮浠g爜锛屽鑷鑰呴潪甯告湁甯姪锛屼篃鍙綔涓篊璇█鍒濆鑰呯殑瀹炵敤鑷鏁欐潗銆
  • 瀛︿範C璇█ 浠庢棩甯哥敓娲讳腑鎵惧嚭涓変釜渚嬪瓙,鎻忚堪瀹冧滑鐨勭畻娉曘
    绛旓細渚嬪瓙锛氫笂娴峰幓鍒板寳浜 绠楁硶锛氬仛姹借溅銆佸仛椋炴満銆佹垨鑰呭緬姝 渚嬪瓙锛氬ぇ璞¤鍐扮 鍝堝搱
  • 扩展阅读:汉诺塔python编程 ... 汉诺塔移动次数c语言 ... 汉诺塔图解一步一图 ... 汉诺塔问题c语言5个盘子 ... 汉诺塔编程题 ... 汉诺塔十句口诀 ... 汉诺塔游戏编程 ... 汉诺塔递归算法c++语言 ... 汉诺塔代码c++实现 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网