Description
A binary search tree is a binary tree with root k such that any node v reachable from its left has label (v) <label (k) and any node w reachable from its right has label (w) > label (k). It is a search structure which can find a node with label x in O(n log n) average time, where n is the size of the tree (number of vertices).
Given a number n, can you tell how many different binary search trees may be constructed with a set of numbers of size n such that each element of the set will be associated to the label of exactly one node in a binary search tree?Input
The input will contain a number 1 <= i <= 100 per line representing the number of elements of the set.
Output
You have to print a line in the output for each entry with the answer to the previous question.
Sample Input
1 2 3
Sample Output
1 2 5
题解:
H【n】 = H【n-1】*(4*n-2)/(n+1){n>=2};
代码如下:
import java.math.*;
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner cin =new Scanner(System.in);
while(cin.hasNext())
{
int n=cin.nextInt();
BigInteger big = new BigInteger("1");
for(int i=2; i<=n; i++)
{
big=big.multiply(new BigInteger(String.format("%d",4*i-2))).
divide(new BigInteger(String.format("%d",i+1)));
}
System.out.println(big);
}
}
}