アルゴリズム分析のAckerman関数の再帰的実現アルゴリズム


Ackerman関数の再帰的実装アルゴリズム.
入力:2つの数字を入力し、nを入力し、mを入力します.
出力:Ackerman関数で計算された値.
例:入力:4 2、出力:16
package suanfafenxi;
import java.util.Scanner;

public class Ackerman {
    static  int ack(int n,int m){
    	if(m==0&&n==1) return 2;	
    	if(m>=0&&n==0)return 1;	
    	if(m==0&&n>=2)return n+2;
    	return ack(ack(n-1,m),m-1);
    }
	public static void main(String[] args) {
       Scanner s=new Scanner(System.in);
       int a=s.nextInt();
       int b=s.nextInt();
       System.out.print(ack(a,b));
	}
}