杨辉三角第一列和对角线为1,其他的计算公式为
a[i][j]=a[i-1][j-1]+a[i-1][j]
实现杨辉三角输出有多种方式,本文提供其中的四种实现方式。
方式一
#include "stdio.h"
int main()
{int a[10][10]= {0};int i,j;for(i=0; i<10; i++){a[i][i]=1;a[i][0]=1;for(j=1; j<=i; j++){a[i][j]=a[i-1][j-1]+a[i-1][j];}}for(i=0; i<10; i++){for(j=0; j<=i; j++)printf("%d ",a[i][j]);printf("\n\r");}}
方式二
#include "stdio.h"
int main()
{int i,j,a[11][11]= {0,1};for(i=1; i<=10; i++){for(j=1; j<=i; j++){a[i][j]=a[i-1][j-1]+a[i-1][j];printf("%d ",a[i][j]);}printf("\n");}
}
方式三
#include "stdio.h"
int main()
{int a[10][10],i,j;for(i=0; i<10; i++)a[i][i]=a[i][0]=1;for(i=2; i<10; i++)for(j=1; j<i; j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0; i<10; i++){for(j=0; j<=i; j++)printf("%d ",a[i][j]);printf("\n\r");}
}
前三中未对输出进行居中对齐,输出结果为:
方式四
#include "stdio.h"#define NUM 20
void printblank(int n)
{int i;for(i=0; i<n; i++)printf(" ");
}
int main()
{int i,j,a[NUM][NUM];for(i=0; i<NUM; i++){printblank(4*(NUM-i));for(j=0; j<=i; j++){if(i==j || j==0)a[i][j]=1;elsea[i][j]=a[i-1][j-1]+a[i-1][j];printf("%-8d",a[i][j]);}printf("\n\n\n");}
}
方式四,对输出结果进行了对齐,输出效果