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

Tìm số x sao cho x cộng tổng chữ số của x bằng n cho trước C++

Cho một số n, cần tìm số x sao cho x + tổng các chữ số của x = n. Ví dụ với n = 21, ta có x = 15 vì 15 + 1 + 5 = 21.

Giải thuật

Duyệt từ 1 đến n, với mỗi số i tính tổng chữ số của i. Nếu i + tổng chữ số(i) = n thì trả về i. Nếu không tìm thấy trả về -1.

Ví dụ minh họa

#include <iostream>
using namespace std;

int getDigitSum(int n) {
    int sum = 0;
    while (n) {
        sum += n % 10;
        n /= 10;
    }
    return sum;
}

int getNumber(int n) {
    for (int i = 0; i <= n; i++)
        if (i + getDigitSum(i) == n)
            return i;
    return -1;
}

int main() {
    int n = 21;
    cout << "Gia tri cua x la: " << getNumber(n);
}

Kết quả

Gia tri cua x la: 15