杨辉三角有两种做法,一种是计算组合数的公式,一种是二维数组。
输出形式①:不要求对称
做法一:
#include<stdio.h>
//组合数写法 C k,j
long long zuhe(int k,int j)
{
long long x=1;
for(int i=1;i<=j;i++)
{
x=x*(k-i+1)/i;
}
return x;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("%10d",1);
for(int j=1;j<=i;j++)
{
printf("%10d",zuhe(i,j));
}
printf("\n");
}
return 0;
}
输出形式②:要求对称
做法一:
#include<stdio.h>
//组合数写法 C k,j
long long zuhe(int k,int j)
{
long long x=1;
for(int i=1;i<=j;i++)
{
x=x*(k-i+1)/i;
}
return x;
}
int main()
{
int n,j,m=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
for(j=1;j<n-m;j++) printf(" ");
m++;
printf("%10d",1);
for(int j=1;j<=i;j++)
{
printf("%10d",zuhe(i,j));
}
printf("\n");
}
return 0;
}