Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tìm đoạn [l, r] có tổng bằng n

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