Guest User

Untitled

a guest
Dec 15th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. public static int ackermann(int m, int n) {
  2.  
  3. if (m == 0) {
  4.  
  5. return n + 1;
  6.  
  7. } else if ((m > 0) && (n == 0)) {
  8.  
  9. return ackermann(m-1, n);
  10.  
  11. } else if ((m > 0) && (n > 0)) {
  12.  
  13. return ackermann(m-1, ackermann(m,n-1));
  14.  
  15. } else {
  16.  
  17. return 0;
  18.  
  19. }
  20.  
  21. }
  22.  
  23. public static int ackermann(int m, int n) {
  24.  
  25. if (m == 0) {
  26.  
  27. return n + 1;
  28.  
  29. } else if (n == 0) {
  30.  
  31. return m + 1;
  32.  
  33. } else if ((m > 0) && (n == 0)) {
  34.  
  35. return ackermann(m-1, n);
  36.  
  37. } else if ((n > 0) && (m == 0)) {
  38.  
  39. return ackermann(n-1, m);
  40.  
  41. } else if ((m > 0) && (n > 0)) {
  42.  
  43. return ackermann(m-1, ackermann(m,n-1));
  44.  
  45. } else if ((n > 0) && (m > 0)) {
  46.  
  47. return ackermann(n-1, ackermann(n, m-1));
  48.  
  49. } else {
  50.  
  51. return 0;
  52.  
  53. }
  54.  
  55. }
  56.  
  57. public static int ackermann(int m, int n) {
  58. if (m < 0 || n < 0) {
  59. throw new IllegalArgumentException("Non-negative args only!");
  60. }
  61.  
  62. if (m == 0) {
  63. return n + 1;
  64. } else if (n == 0) {
  65. return ackermann(m-1, 1); // Corrected!
  66. } else {
  67. // perforce (m > 0) && (n > 0)
  68. return ackermann(m-1, ackermann(m,n-1));
  69. }
  70. }
  71.  
  72. } else if ((m > 0) && (n == 0)) {
  73. return ackermann(m-1, n);
  74.  
  75. else if (n == 0) {
  76. return m + 1;
  77. }
  78.  
  79. else if ((m > 0) && (n == 0)) {
  80. return ackermann(m-1, n);
  81. }
Add Comment
Please, Sign In to add comment