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

Tìm ba số không chia hết cho 3 có tổng bằng n bằng C++

Mô tả bài toán

Cho n. Tìm a,b,c >0, không chia hết cho 3, sao cho a+b+c=n.

Ví dụ

n=233 → Output: 1,2,230 (1%3=1, 2%3=2, 230%3=2).

Thuật toán

Nếu (n-2)%3==0 → dùng 1,2,n-3. Ngược lại dùng 1,1,n-2. Luôn thỏa mãn không chia hết 3.

Code C++

#include <bits/stdc++.h>
using namespace std;

void solve(int n) {
    if ((n-2)%3 == 0)
        cout << 1 << ", " << 2 << ", " << n-3;
    else
        cout << 1 << ", " << 1 << ", " << n-2;
}

int main() {
    int n = 233;
    solve(n);
    return 0;
}

Đầu vào / Đầu ra

Input: 233

Output: 1, 2, 230