Tam giác tổng được tạo bằng cách giảm dần số phần tử mảng: mảng mới chứa tổng các phần tử liền kề của mảng trước, lặp lại cho đến khi còn 1 phần tử.
Ví dụ
Mảng: [3, 5, 7, 8, 9]
[106] [47, 59] [20, 27, 32] [8, 12, 15, 17] [3, 5, 7, 8, 9]
Giải thích:
- Hàng 1: 3+5=8, 5+7=12, 7+8=15, 8+9=17
- Hàng 2: 8+12=20, 12+15=27, 15+17=32
- Hàng 3: 20+27=47, 27+32=59
- Hàng 4: 47+59=106
Chương trình đệ quy
#include <stdio.h>
void printTriangle(int arr[], int n) {
if (n < 1) return;
int temp[n - 1];
for (int i = 0; i < n - 1; i++)
temp[i] = arr[i] + arr[i + 1];
printTriangle(temp, n - 1);
for (int i = 0; i < n; i++) {
if (i == n - 1) printf("%d ", arr[i]);
else printf("%d, ", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = {3, 5, 7, 8, 9};
int n = sizeof(arr) / sizeof(arr[0]);
printTriangle(arr, n);
return 0;
}
Kết quả
106 47, 59 20, 27, 32 8, 12, 15, 17 3, 5, 7, 8, 9