/* * Tower of Hanoi * written by ASAKAWA Shinichi * * How to compile this source code * gcc -o hanoi hanoi.c */ #include #include int hanoi(int n, char x, char y, char z) { if (n==1) { printf("move disk %d from %c to %c\n",n, x, y); } else { hanoi( n-1, x, z, y ); printf("move disk %d from %c to %c\n",n, x, y); hanoi( n-1, z, y, x ); } return EXIT_SUCCESS; } int main(int argc, char **argv) { int disks = 3; /* default number of disks */ if (argc == 2) { if ( (disks=atoi(argv[1]))<= 0 ) { fprintf(stderr, "Invalid argument %s\n", argv[1]); exit (EXIT_FAILURE); } } hanoi(disks, 'a', 'b', 'c'); return EXIT_SUCCESS; }