以10层为例。定义一个int数组,赋初值为0,1,0...这样就把当前层的计算简化为用上一层的相邻2数相加,在输出当前数的同时把它存入数组对应位置,为下一层计算使用。举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.#include "s尽句东流至减tdio.h"
#define N 10
int main(void){
int i, j, a[N来自+1]={0};
printf("Yang-Hui triangle 10 la端黑感照果势势达须yer:\n");
f360问答or(*(a+1)=i=1;i<=N;i++){//利用本层某位上一层左右2贵专紧停位之和求得
printf("%*c",1+((N-i)<<1),' ');//计算并移动到屏幕上合适的位置
for(j=i;j>=样革力资1;j--)
p报城将却染朝言rintf("%4d",*(a+j)+=*(a+j-1));//输出当前数并存入数组,供下一层计算用
p脚简肥突县计至耐rintf("\n");
}
return 0;
}