C++ 实现杨辉三角

来源:互联网 发布:淘宝供货商怎么找免费 编辑:程序博客网 时间:2024/06/05 11:15

下面为杨辉三角的表现形式

                          1                         1   1                          1   2   1                        1   3   3   1                      1   4   6   4   1                    1   5   10  10  5   1                  1   6   15  20  15  6   1                1   7   21  35  35  21  7   1              1   8   28  56  70  56  28  8   1            1   9   36  84  126 126 84  36  9   1          1   10  45  120 210 252 210 120 45  10  1        1   11  55  165 330 462 462 330 165 55  11  1       1   12  66  220 495 792 924 792 495 220 66  12  1...

可以用递归的方法来实现,代码如下:

#include <iostream>using namespace std;int* returnArray(int N);int main() {    int N;    cin >> N;    for (int i = 1; i <= N; i++) {        int *A = returnArray(i);        for (int j = 0; j < i; j++) {        cout << A[j];        cout << "  ";    }        cout << endl;    }   }int* returnArray(int N) {    int *a = new int[N];    if (N == 1) {        a[0] = 1;        return a;    }    else if(N == 2) {        a[0] = 1;        a[1] = 1;        return a;    }    else {        int* b = returnArray(N - 1);        for (int i = 1; i < N - 1; i++) {            a[i] = b[i] + b[i - 1];        }        a[0] = 1;        a[N - 1] = 1;        return a;    }}

注意:返回数组最好用动态数组,返回地址。

0 0