下面为杨辉三角的表现形式
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;
}
}
注意:返回数组最好用动态数组,返回地址。