X-Git-Url: https://gitweb.ps.run/onefile/blobdiff_plain/6f2e28e44c3d1552a12b4e3d92f9d4788d5aab09..2b3f2bfe27d231b7d140785520597dffed826a35:/hanoi.c diff --git a/hanoi.c b/hanoi.c new file mode 100644 index 0000000..ddbe4db --- /dev/null +++ b/hanoi.c @@ -0,0 +1,35 @@ +#include +#include + +void hanoi(char from, char to, int disks) +{ + char third = ('a' + 'b' + 'c') - from - to; + + if (disks == 1) + { + printf("%c -> %c\n", from, to); + } + else + { + hanoi(from, third, disks - 1); + printf("%c -> %c\n", from, to); + hanoi(third, to, disks - 1); + } +} + +int main(int argc, char **argv) +{ + if (argc != 4) + { + printf("Usage: %s \n", argv[0]); + return 1; + } + + char from = argv[1][0]; + char to = argv[2][0]; + int disks = atoi(argv[3]); + + hanoi(from, to, disks); + + return 0; +}