题目描述
要点
转成图2后,我们可以清楚的发现输出的每一个数都是上方与左上方的和(a[i-1][j],a[i-1][j-1]),为了方便,我将数组初始化都为0 --不用特别判断,注意需要从a[1][1]开始。
防止数组越界!!!
代码+注释
/***************************************************
author:David_Ding
date:4.2
O 输出10行杨辉三角
P 每次只需输出上方a[i-1][j]+a[i-1][j-1]即可
要用双重循环,因为杨辉三角每行个数=当前是第几行
注意初始化条件 a[1][1]=1 (这样即使上方没有也可以不用特殊判断)
***************************************************/
#include<bits/stdc++.h>
using namespace std;
int a[30][30];
int main(){
a[1][1]=1;
for(int i=1;i<=10;i++){
for(int j=1;j<i;j++){
a[i][j]+=a[i-1][j] ;
a[i][j]+=a[i-1][j-1];
printf("%d ",a[i][j]);
}
printf("\n");//注意换行
}
return 0;
}
代码运行结果
后记
感谢大家的关注!
若有任何建议请发邮件至learning.dlq@gmail.com!