COND - Quan hệ
Tác giả: khuc_tuan
Ngôn ngữ: Java
import java.io.*;
public class Main {
long[][] f, c;
void init(){
int i,j,l;
f = new long[20][20];
c = new long[20][20];
for(i=1;i<=10;++i)
for(j=1;j<=10;++j) c[i][j]=0;
c[1][1] = 1;
for(i=1;i<=10;++i) c[0][i] = 1;
for(i=2;i<=10;++i)
for(j=1;j<=i;++j) c[j][i] = c[j-1][i-1]+c[j][i-1];
for(i=1;i<=10;++i)
for(j=1;j<=i;++j) f[i][j]=0;
f[1][1] = 1;
for(i=2;i<=10;++i){
f[i][1] = 1;
for(j=2;j<=i;++j)
for(l=1;l<=i-j+1;++l)
f[i][j] += f[i-l][j-1]*c[l][i];
}
}
long cal(int n){
long r=0;
for(int j=1;j<=n;++j) r+= f[n][j];
return r;
}
void run() throws Exception{
BufferedReader kb = new BufferedReader(new InputStreamReader(System.in));
init();
while(true){
int n = Integer.parseInt(kb.readLine());
if(n==-1) break;
System.out.println(cal(n));
}
}
public static void main(String[] Args) throws Exception{
new Main().run();
}
}