tags:

views:

51

answers:

1

I am trying to solve the following recurence program.

http://en.wikipedia.org/wiki/Hyper_operator

Here is my code. I know it has mistakes, but I have done what I could.

public class hyper {
    public static int Hyper(int a, int b, int n) {
        int t=0;
        if (n == 0)
            return b+1;

        if ((n == 1) && (b == 0))
            return a;

        if ((n == 2) && (b == 0))
            return 0;

        if ((n >= 3) && (b == 0))
            return 1;

        t = Hyper(a, b-1, n);

        return Hyper(a, t, n-1);
    }


    public static void main(String[] args) {
        int n=3;
        int a=5;
        int b=7;
        System.out.println(Hyper(a, b, n));
    }
}
A: 

This is a straightforward translation of the Wikipedia definition:

alt text

public static long hyper(long n, long a, long b) {
    return
        (n == 0) ? b + 1 :
        (n == 1 && b == 0) ? a :
        (n == 2 && b == 0) ? 0 :
        (n >= 3 && b == 0) ? 1 :
        hyper(n-1, a, hyper(n, a, b-1));
}

Sample output:

    System.out.println(hyper(0,2,3)); // prints "4" increment
    System.out.println(hyper(1,2,3)); // prints "5" addition
    System.out.println(hyper(2,2,3)); // prints "6" multiplication
    System.out.println(hyper(3,2,3)); // prints "8" exponentiation
    System.out.println(hyper(4,2,3)); // prints "16" tetration
    System.out.println(hyper(5,2,3)); // throws StackOverflowError; too deep
polygenelubricants
sorry polygenelubricants i have changed it but it does not show me result
@davit: you have to communicate better than that, because I don't know what you're saying.
polygenelubricants
aaa sorry i have got result thanks
yes u are rigth no nothing just i had some mstakes and did not compile sorry please excuse me
thanks good examples thanks very much