Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tính tổng tam giác từ một mảng trong lập trình C

Tam giác tổng từ một mảng là một tam giác được tạo bằng cách giảm lần lượt số phần tử của mảng và mảng mới được tạo thành với các số nguyên là tổng các số nguyên liền kề của mảng hiện có. Quy trình này tiếp tục cho đến khi chỉ còn một phần tử trong mảng.

Hãy lấy một ví dụ để giải thích nội dung tốt hơn,

Array = [3,5,7,8,9]

Đầu ra

[106]
[47,59]
[20,27,32]
[8,12,15,17]
[3,5,7,8,9]

Giải thích

For the first array : ( 3 + 5 = 8), ( 5 + 7 = 12), ( 7 + 8 = 15),( 8 + 9 = 17)
For the second array: 8 + 12 = 20 , 12 + 15 = 27 , 15 + 17 = 32
For the third array: 20 + 27 = 47 , 27 + 32 = 59
For the final array: 47 + 59 = 106

Mã chạy như được hiển thị trong phần giải thích ví dụ. Vì vậy, đối với điều này, chúng ta cần một hàm đệ quy sẽ gọi chính nó cho mọi mảng.

Ví dụ

#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++) {
      int x = arr[i] + arr[i + 1];
      temp[i] = x;
   }
   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);
}

Đầu ra

106
47, 59
20, 27, 32
8, 12, 15, 17
3, 5, 7, 8, 9