题意:
求s(n,0)+s(n,1)+...s(n,n),s(i,j)为第二类Stirling数。
分析:
有递推公式s(p,k)=(p-1)*s(p-1,k)+s(p-1,k-1) ,1<=k<=p-1。
代码:
//poj 1671
//sep9
#include<iostream>
using namespace std;
double s[64][64];
double sum[64];
int main()
{
for(int i=0;i<=50;++i){
s[i][0]=0;
s[i][i]=1;
}
for(int i=1;i<=50;++i){
sum[i]=0;
for(int j=1;j<=i;++j){
s[i][j]=j*s[i-1][j]+s[i-1][j-1];
sum[i]+=s[i][j];
}
}
int x;
while(scanf("%d",&x)==1&&x)
printf("%d %.0lf\n",x,sum[x]);
return 0;
}