九度oj 题目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

 1 #include <cstdio>
 2 #include <cstdlib>
 3 #include <string>
 4 #include <cstring>
 5 #include <algorithm>
 6 
 7 int yang[202];
 8 
 9 
10 int main(int argc, char const *argv[])
11 {
12     int n;
13     while(scanf("%d",&n) != EOF) {
14         memset(yang, 0, sizeof(yang));
15         yang[1] = 1, yang[2] = 1;
16         printf("%s
","1 1");
17         for(int i = 3; i <= n; i++) {
18             yang[1] = 1;
19             for(int k = (i+1)/2; k >= 2; k--) {
20                 yang[k] = yang[k] + yang[k-1];
21             }
22             for(int k = 1, j = i; k <= (i+1)/2; k++,j--) {
23                 yang[j] = yang[k];
24             }
25             bool ifF = true;
26             for(int j = 1; j <= i; j++) {
27                 if(ifF) {
28                     printf("%d",yang[j]);
29                     ifF = false;
30                 }
31                 else {
32                     printf(" %d",yang[j]);
33                 }
34                 
35             }
36             puts("");
37         }
38     }
39     return 0;
40 }

从后往前加,可以只用一个数组

原文地址:https://www.cnblogs.com/jasonJie/p/5730270.html