请问以下公式用动态规划(DP)自底向上迭代的算法(代码/伪代码皆可)怎样实现?

naivA(n)

1. if n ≤ 1 then return 1;

2. sum = 0;

3. for i = 1 to n

4.

sum += naivA(i i 1) · naivA(n \ i);

5. return sum;

naivA(n)

1. if n ≤ 1 then return 1;

2. sum = 0;

3. for i = 1 to n

4. sum += naivA(i -1) · naivA(n - i);

5. return sum;

 

实现的公式如下:

A(n)=1    ,n=0

A(n)=1    ,n=1

A(n)= Σ A(i-1)*A(n-i)  ,n>=2

不好意思多粘了一段伪代码,一样的内容,大家忽略就好,只看其一。

public static void main(String[] args) throws Exception {
    System.out.println(goSum(3));
}

private static int goSum(int n){
    int sum = 0;
    if(n==0){
        sum = 1;
    }
    if (n==1){
        sum = 1;
    }else {
        for (int i = 1; i <= n; i++) {
            sum += goSum(i-1)*goSum(n-i);
        }

    }
    return sum;
}