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

posted @ 2017-03-19 20:34  负雪明烛  阅读(26)  评论(0编辑  收藏  举报