summaryrefslogtreecommitdiff
path: root/rushs/evalexpr/hanoi
diff options
context:
space:
mode:
authorMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:08:27 +0200
committerMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:08:27 +0200
commitc9b6b9a5ca082fe7c1b6f58d7713f785a9eb6a5c (patch)
tree3e4f42f93c7ae89a364e4d51fff6e5cec4e55fa9 /rushs/evalexpr/hanoi
add: graphs et rushs
Diffstat (limited to 'rushs/evalexpr/hanoi')
-rw-r--r--rushs/evalexpr/hanoi/hanoi.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/rushs/evalexpr/hanoi/hanoi.c b/rushs/evalexpr/hanoi/hanoi.c
new file mode 100644
index 0000000..6ac2b71
--- /dev/null
+++ b/rushs/evalexpr/hanoi/hanoi.c
@@ -0,0 +1,31 @@
+#include <stdio.h>
+
+void move(unsigned src, unsigned spare, unsigned dst, unsigned n)
+{
+ if (n == 0)
+ {
+ return;
+ }
+
+ move(src, dst, spare, n - 1);
+
+ printf("%u->%u\n", src, dst);
+
+ move(spare, src, dst, n - 1);
+}
+
+void hanoi(unsigned n)
+{
+ if (n == 0)
+ {
+ return;
+ }
+
+ move(1, 2, 3, n);
+}
+
+int main(void)
+{
+ hanoi(3);
+ return 0;
+}