From: patrick-scho Date: Fri, 30 May 2025 20:57:12 +0000 (+0200) Subject: add hanoi.c X-Git-Url: https://gitweb.ps.run/onefile/commitdiff_plain/2b3f2bfe27d231b7d140785520597dffed826a35?ds=sidebyside add 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; +}