| 1234567891011121314151617181920212223242526272829303132333435363738 |
- #include <stdio.h>
- // Ackermann function
- unsigned long
- ackermann(unsigned long m, unsigned long n)
- {
- if (m == 0) {
- return n + 1;
- }
- else if (n == 0) {
- return ackermann(m - 1, 1);
- }
- else {
- return ackermann(m - 1, ackermann(m, n - 1));
- }
- }
- __attribute__((export_name("run"))) int
- run(int m, int n)
- {
- int result = ackermann(m, n);
- printf("ackermann(%d, %d)=%d\n", m, n, result);
- return result;
- }
- int
- main()
- {
- unsigned long m, n, result;
- // Example usage:
- m = 3;
- n = 2;
- result = ackermann(m, n);
- printf("Ackermann(%lu, %lu) = %lu\n", m, n, result);
- return 0;
- }
|