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

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


Ở đây chúng ta sẽ thấy một bài toán, nơi chúng ta lấy một số n, chúng ta phải tìm một giá trị khác x, sao cho x + tổng chữ số của x bằng số cho trước n. Giả sử giá trị n là 21. Chương trình này sẽ trả về một số x = 15, vì 15 + tổng chữ số của 15, tức là 15 + 1 + 5 = 21 = n.

Để giải quyết bài toán này, chúng ta phải làm theo cách tiếp cận đơn giản. Chúng ta sẽ lặp từ 1 đến n, ở mỗi lần lặp, chúng ta sẽ xem nếu tổng của số và tổng chữ số của nó bằng số cho trước thì dừng, ngược lại tiếp tục.

Ví dụ

#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 << "The value of x is: " << getNumber(n); }

Kết quả

The value of x is: 15