summaryrefslogtreecommitdiffstats
path: root/llvm/test/ackermann.c
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/ackermann.c')
-rw-r--r--llvm/test/ackermann.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/test/ackermann.c b/llvm/test/ackermann.c
new file mode 100644
index 00000000000..5e1bd489441
--- /dev/null
+++ b/llvm/test/ackermann.c
@@ -0,0 +1,23 @@
+/* -*- mode: c -*-
+ * $Id$
+ * http://www.bagley.org/~doug/shootout/
+ */
+
+int printf(const char *, int, int);
+int atoi(const char *);
+
+int
+Ack(int M, int N) {
+ if (M == 0) return( N + 1 );
+ if (N == 0) return( Ack(M - 1, 1) );
+ return( Ack(M - 1, Ack(M, (N - 1))) );
+}
+
+int
+main(int argc, char *argv[]) {
+ int n = ((argc == 2) ? atoi(argv[1]) : 5);
+
+ printf("Ack(3,%d): %d\n", n, Ack(3, n));
+ return(0);
+}
+
OpenPOWER on IntegriCloud