[C] 求卡特兰数列 →→→→→进入此内容的聊天室

来自 , 2021-04-12, 写在 C, 查看 160 次.
URL http://www.code666.cn/view/0fe47339
  1. int a[110][110];
  2. void Catalan()
  3. {
  4.   int i,j,len,carry;
  5.   a[1][0]=a[1][1]=1;
  6.   a[2][0]=1,a[2][1]=2;
  7.  
  8.   len=1;
  9.   for(i=3;i<105;i++)
  10.   {
  11.       carry=0;
  12.           for(j=1;j<=len;j++)//做乘法
  13.       {
  14.         int temp=a[i-1][j]*(4*i-2)+carry;
  15.         a[i][j]=temp%10;
  16.         carry=temp/10;    
  17.       }    
  18.       while(carry)//进位处理
  19.       {
  20.         a[i][++len]=carry%10;
  21.         carry/=10;
  22.       }
  23.      
  24.      carry=0;
  25.      for(j=len;j>=1;j--)//做除法
  26.      {
  27.        int  temp=carry*10+a[i][j];
  28.        a[i][j]=temp/(i+1);
  29.         carry=temp%(i+1);
  30.      }
  31.      while(!a[i][len])//高位去零
  32.       len--;  
  33.       a[i][0]=len;
  34.   }
  35. }

回复 "求卡特兰数列"

这儿你可以回复上面这条便签

captcha