【九度OJ】题目1073:杨辉三角形 解题报告

【九度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 日

上一篇:js 工厂模式、简单模式、抽象模式


下一篇:理解JS深拷贝