链接:https://ac.nowcoder.com/acm/contest/6006/J
来源:牛客网
题目描述
KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。
输入描述:
第一行包含一个整数数n。 (1≤n≤30)
输出描述:
包含n行,为杨辉三角的前n行,每个数输出域宽为5。
示例1
输入
复制
6
输出
复制
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
- f [ i ] [ j ] = f [ i − 1 ] [ j ] + f [ i − 1 ] [ j − 1 ] f[i][j] = f[i-1][j]+f[i-1][j-1] f[i][j]=f[i−1][j]+f[i−1][j−1]
cin >> n;
int dp[128][128];
dp[1][1] = 1, dp[2][1] = dp[2][2] = 1;
for(int i=1; i<=n; i++) {
for(int j=1; j<=i; j++) {
if(j == 1 || j == i) dp[i][j] = 1;
else dp[i][j] = dp[i-1][j] + dp[i-1][j-1];
}
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=i; j++) printf("%5lld", dp[i][j]);
printf("\n");
}