/* * File Name: HanoiTower.c * Author: MH * Since 2011/06/07 * Toolkit: Dev C++ */ # include <stdlib.h> # include <stdio.h> int times=0; void Hanoi(int N,char A,char B,char C){ // recursive program if(N==1){ // the last condition printf("圓盤%d : %c -> %c\n", N, A, C); // the bottomest disk on A moves to C times++; } else{ Hanoi(N-1, A, C, B); // continue moving printf("圓盤%d : %c -> %c\n", N, A, C); times++; Hanoi(N-1, B, A, C); // second moving } } int main(){ int N; printf("How many disks?\n"); scanf("%d", &N); while(N>10){ // N is less 10 system("CLS"); printf("N should less than 10\n"); printf("Please input again\n\n"); scanf("%d", &N); // input again } printf("\n"); Hanoi(N, 'A', 'B', 'C'); // call sub-program printf("\n共用了%3d 步\n\n", times); system("PAUSE"); return 0; }
搜尋此網誌
[C/C++][河內塔(Hanoi Tower)]
訂閱:
張貼留言 (Atom)
這不是c++!!!!!
回覆刪除標題就寫C與C++了..改一些語法不難吧
刪除