以10层为例。定义一个int数组,赋初值为0,1,0...这样就把当前层的计算简化为用上一层的相邻2数相加,在输出当前数的同时把它存入数组对应位置,为下一层计算使用。举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#define N 10
int main(void){
int i, j, a[N+1]={0};
printf("Yang-Hui triangle 10 layer:\n");
for(*(a+1)=i=1;i<=N;i++){//利用本层某位上一层左右2位之和求得
printf("%*c",1+((N-i)<<1),' ');//计算并移动到屏幕上合适的位置
for(j=i;j>=1;j--)
printf("%4d",*(a+j)+=*(a+j-1));//输出当前数并存入数组,供下一层计算用
printf("\n");
}
return 0;
}