Cho mảng arr[] kích thước n, tính tổng các phần tử.
Ví dụ
arr = {3, 1, 7, 2, 9, 10} → Tổng = 32.
Cách 1: Đệ quy
int calcArraySum(int arr[], int n) {
if (n == 1) return arr[0];
return arr[n-1] + calcArraySum(arr, n-1);
}
Cách 2: Vòng lặp (Khuyên dùng)
int calcArraySum(int arr[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) sum += arr[i];
return sum;
}
Cài đặt đầy đủ (Cách 2)
#include <iostream>
using namespace std;
int calcArraySum(int arr[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) sum += arr[i];
return sum;
}
int main() {
int arr[] = {1, 4, 5, 7, 6};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Tong phan tu mang la " << calcArraySum(arr, n);
return 0;
}
Output
Tong phan tu mang la 23
So sánh
| Phương pháp | Độ phức tạp | Ưu/nhược điểm |
|---|---|---|
| Đệ quy | O(n) thời gian, O(n) stack | Đơn giản nhưng tốn bộ nhớ stack, dễ tràn stack khi n lớn |
| Vòng lặp | O(n) thời gian, O(1) không gian | Hiệu quả, an toàn, khuyên dùng |