由于要打印整个杨辉三角的数据而非取出某一项,所以不可避免的一定是要填出每一项,没有偷懒的余地,那就老老实实的根据规律填空即可。按照题设的场景,能发现数字规律为:
d[ i ][ j ] = d[i - 1][ j ] + d[i - 1][j - 1]
所以我们只要按照这个方法填表即可。
#include<stdio.h>
#include<stdlib.h>
#define N 11//表示要打印的行数
int main()
{int i = 0;int j = 0;int tge[N][N];for (i = 0; i < N; i++)//先打印每一行的第一个和最后一个;{tge[i][0] = 1;tge[i][i] = 1;}for (i = 2; i < N; i++)//打印中间部分{for (int j = 1; j < i; j++){tge[i][j] = tge[i - 1][j - 1] + tge[i - 1][j];}}for (i = 0; i < N; i++){for (j = 0; j < 2 * (N - i); j++){printf(" ");}for (j = 0; j <= i; j++){printf("%4d", tge[i][j]);}printf("\n");}return 0;
}