Vẽ 30 dòng tam giác Pascal

cho em hỏi làm sao để vẽ tam giác pascal 30 dòng với ạ,em viết thường tính theo giai thừa thì nó chạy có mười mấy dòng,mà viết đệ quy thì nó quá lâu,giới hạn có đc 1 s.Ai chỉ cho em vs ạ

#include <stdio.h>
#include <stdlib.h>
long pl (int k,int n)
{
if (k==0||k==n)
return 1;
else return pl( k, n-1 ) + pl( k-1, n-1 );

}
int main()
{
int n;
int i,k;
scanf("%d",&n);
for (i=0;i<=n;i++)
{
for (k=0;k<=i;k++)
{
printf("%ld “,pl(k,i));
}
printf(”\n");
}
return 0;
}

#include <stdio.h>
#include <stdlib.h>
long long giaithua (int n)
{
int i;
long long gt=1;
if (n==1||n==0)
return 1;
for (i=1;i<=n;i++)
{
gt=gt*i;
}
return gt;
}
int main()
{
int n;
int i,k;
scanf("%d",&n);
for (i=0;i<=n;i++)
{
for (k=0;k<=i;k++)
{
printf("%lld “,giaithua(i)/(giaithua(k)*giaithua(i-k)));
}
printf(”\n");
}
return 0;
}

Áp dụng công thức C(k, n) = C(k, n-1) + C(k-1, n-1) để tính. Độ phức tạp O(n^2).

thanks,để em thử đã,nghe mong lung quá :sweat_smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?