summaryrefslogtreecommitdiff
path: root/regress/usr.bin/bc/t18.in
diff options
context:
space:
mode:
authorOtto Moerbeek <otto@cvs.openbsd.org>2003-12-09 12:49:02 +0000
committerOtto Moerbeek <otto@cvs.openbsd.org>2003-12-09 12:49:02 +0000
commitd29dfe98545e37462892fc09086f7e3a26113fd9 (patch)
tree16b0b4ed95c5ec602b56c48faa67577426b4bbb5 /regress/usr.bin/bc/t18.in
parentca9cca296a75d6ec551ed6d989d5dda291cf8ce5 (diff)
Towers of Hanoi regression test.
BSD license with permission from author Amit Singh <amit_s at acm dot org>.
Diffstat (limited to 'regress/usr.bin/bc/t18.in')
-rw-r--r--regress/usr.bin/bc/t18.in45
1 files changed, 45 insertions, 0 deletions
diff --git a/regress/usr.bin/bc/t18.in b/regress/usr.bin/bc/t18.in
new file mode 100644
index 00000000000..1f989a228b8
--- /dev/null
+++ b/regress/usr.bin/bc/t18.in
@@ -0,0 +1,45 @@
+/* $OpenBSD: t18.in,v 1.1 2003/12/09 12:49:01 otto Exp $ */
+/*
+ * Copyright (c) 2003 Amit Singh <amit_s@acm.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * The Towers Of Hanoi
+ * bc version
+ * http://hanoi.kernelthread.com
+ */
+
+define moveit(i, j) {
+ print "move "
+ print i
+ print " --> "
+ print j
+ print "\n"
+}
+
+define dohanoi(n, h, d, o) {
+ if (n > 0) {
+ silence = dohanoi(n-1, h, o, d)
+ silence = moveit(h, d)
+ silence = dohanoi(n-1, o, d, h)
+ }
+}
+
+define hanoi(n) {
+ silence = dohanoi(n, 1, 3, 2)
+}
+
+hanoi(5)
+