【九度OJ】题目1073:杨辉三角形 解题报告
标签(空格分隔): 九度OJ
http://ac.jobdu.com/problem.php?pid=1073
题目描述:
输入n值,使用递归函数,求杨辉三角形中各个位置上的值。
输入:
一个大于等于2的整型数n
输出:
题目可能有多组不同的测试数据,对于每组输入数据,
按题目的要求输出相应输入n的杨辉三角形。
样例输入:
6
样例输出:
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Ways
题目要求递归,可是没想好怎么用,看了眼别人的都没用递归,那我也不用算了……
那这就成了老生常谈的了,主要注意循环体i j的循环范围,画个图数一数就好了。
#include<stdio.h>
int main() {
int n;
while (scanf("%d", &n) != EOF) {
int ans[n - 1][n];
ans[0][0] = 1;
ans[0][1] = 1;
for (int i = 1; i < n - 1; i++) {
ans[i][0] = 1;
int j;
for (j = 1; j < i + 1; j++) {
ans[i][j] = ans[i - 1][j - 1] + ans[i - 1][j];
}
ans[i][j] = 1;
}
for (int i = 0; i < n - 1; i++) {
bool isFirst = true;
for (int j = 0; j < i + 2; j++) {
if (isFirst) {
printf("%d", ans[i][j]);
isFirst = false;
} else {
printf(" %d", ans[i][j]);
}
}
printf("\n");
}
}
return 0;
}
Date
2017 年 3 月 19 日