2014年5月11日 星期日

c語言練習--河內塔問題

利用遞迴函式來設計程式,搞得我一頭霧水,頭昏腦脹,一整天終於成功,線上測試到十一層有成功,至少2^n -1次。十二層以上線上測試就錯誤了,可能是運算時間逾時被終止了(猜的)。




#include
int time = 0;
void Hanoi(int n,char a,char b,char c){
if(n==1)
{
printf("%d:將頂環從%c移至%c\n",++time,a,c);
}
else
{
Hanoi(n-1,a,c,b);
Hanoi(1,a,b,c);
Hanoi(n-1,b,a,c);
}
}

int main(void) {
int n;
char a='A',b='B',c='C';
scanf("%d",&n);
    printf("輸入環數為:%d\n",n);
Hanoi(n,a,b,c);
return 0;

}

0 意見: