パスカルの三角形を描画するプログラム(C言語)

先に実行結果から

                                      1   
                                   1     1   
                                1     2     1   
                             1     3     3     1   
                          1     4     6     4     1   
                       1     5    10    10     5     1   
                    1     6    15    20    15     6     1   
                 1     7    21    35    35    21     7     1   
              1     8    28    56    70    56    28     8     1   
           1     9    36    84   126   126    84    36     9     1   
        1    10    45   120   210   252   210   120    45    10     1   
     1    11    55   165   330   462   462   330   165    55    11     1   
  1    12    66   220   495   792   924   792   495   220    66    12     1   
#include <stdio.h>
#define N 12 //描画するパスカルの三角形の段数

long combi(int,int);
int main(){
    for(int i=0;i<=N;i++){
        for(int t=0;t<(N-i)*3;t++){
            printf(" ");
        }
        for(int j=0;j<=i;j++){
            printf("%3ld   ",combi(i,j));
        }
        printf("\n");
    }
}

long combi(int n,int r){
    if (r == 0) {
        return 1;
    }

    return (n - r + 1) * combi(n, r - 1) / r;
}