Tính tổng S = 1 + 2 + 3 + ... + n.
Cách 1: Vòng lặp (O(n))
int findSum(int n) {
int sum = 0;
for (int x = 1; x <= n; x++) sum += x;
return sum;
}
Cách 2: Công thức toán học (O(1))
S = n(n+1)/2
int findSum(int n) {
return n * (n + 1) / 2;
}
Cài đặt đầy đủ
#include <iostream>
using namespace std;
int findSum(int n) {
return n * (n + 1) / 2;
}
int main() {
int n = 5;
cout << findSum(n);
return 0;
}
Output
15
Lưu ý
- Dùng
long longnếunlớn (> 46340) để tránh trànint. - Công thức xuất phát từ việc ghép cặp:
1+n, 2+(n-1), ...mỗi cặp bằngn+1.