Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int ackermann(int m, int n) {
- if (m == 0) {
- return n + 1;
- } else if ((m > 0) && (n == 0)) {
- return ackermann(m-1, n);
- } else if ((m > 0) && (n > 0)) {
- return ackermann(m-1, ackermann(m,n-1));
- } else {
- return 0;
- }
- }
- public static int ackermann(int m, int n) {
- if (m == 0) {
- return n + 1;
- } else if (n == 0) {
- return m + 1;
- } else if ((m > 0) && (n == 0)) {
- return ackermann(m-1, n);
- } else if ((n > 0) && (m == 0)) {
- return ackermann(n-1, m);
- } else if ((m > 0) && (n > 0)) {
- return ackermann(m-1, ackermann(m,n-1));
- } else if ((n > 0) && (m > 0)) {
- return ackermann(n-1, ackermann(n, m-1));
- } else {
- return 0;
- }
- }
- public static int ackermann(int m, int n) {
- if (m < 0 || n < 0) {
- throw new IllegalArgumentException("Non-negative args only!");
- }
- if (m == 0) {
- return n + 1;
- } else if (n == 0) {
- return ackermann(m-1, 1); // Corrected!
- } else {
- // perforce (m > 0) && (n > 0)
- return ackermann(m-1, ackermann(m,n-1));
- }
- }
- } else if ((m > 0) && (n == 0)) {
- return ackermann(m-1, n);
- else if (n == 0) {
- return m + 1;
- }
- else if ((m > 0) && (n == 0)) {
- return ackermann(m-1, n);
- }
Add Comment
Please, Sign In to add comment