Cho số n. Tìm hai số nguyên l < r sao cho tổng các số nguyên liên tiếp từ l đến r bằng n.
Ví dụ
Với n = 25, một đáp án là l = -2, r = 7 vì (-2)+(-1)+0+1+2+3+4+5+6+7 = 25.
Giải thuật
Luôn tồn tại đáp án: chọn l = -(n-1) và r = n. Tổng từ -(n-1) đến n bằng n (các số đối nhau triệt tiêu, chỉ còn n).
Mã C++
#include <bits/stdc++.h>
using namespace std;
void solve(int n) {
cout << -(n-1) << ", " << n;
}
int main() {
int n = 25;
solve(n);
}
Đầu vào / Đầu ra
Input: 25
Output: -24, 25