hdu 1023 Train Problem II

链接:点击打开链接

特殊的数(CatalanNumber)

#include
using namespace std;
int a[101][101],b[101];
void Catalan()  
{  
    int i,j,len,carry,temp;
    a[1][0]=b[1]=1;
    len=1;
    for(i=2;i<=100;i++)
    {
     for(j=0;j=0;j--)
     {
       temp=carry*10+a[i][j];
       a[i][j]=temp/(i+1);
       carry=temp%(i+1);
     }
     while(!a[i][len-1])
         len--;
     b[i]=len;
    }  
}     
    int main()
{
  int n,j;
  Catalan();
  while(cin>>n)
  {
 for(j=b[n]-1;j>=0;j--)
   printf("%d",a[n][j]);
 printf("\n");
  }
  return 0;
}


你可能感兴趣的:(ACM_数学题)