diff options
Diffstat (limited to 'llvm/test/ackermann.c')
-rw-r--r-- | llvm/test/ackermann.c | 23 |
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); +} + |