Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm một số X có tổng với các chữ số của nó bằng N trong C ++

Trong hướng dẫn này, chúng ta sẽ tìm một số có một số bao gồm các chữ số của nó bằng số N.

đã cho

Ý tưởng rất đơn giản, chúng ta sẽ kiểm tra bên trái và bên phải 100 số của dãy số đã cho. Nó sẽ không bị ràng buộc rằng N ≤ 1000000000 và tổng sẽ không vượt quá 100.

Hãy xem các bước để giải quyết vấn đề.

  • Khởi tạo số.

  • Viết một vòng lặp lặp lại 100 lần.

    • Nhận các giá trị n - i và n + i.

    • Tìm tổng các chữ số và cộng chúng.

    • Nếu bất kỳ ai trong số họ bằng N, hãy in chúng.

Ví dụ

Hãy xem mã.

#include <bits/stdc++.h>
using namespace std;
int digitsSum(int n) {
   int sum = 0;
   while (n) {
      sum += n % 10;
      n /= 10;
   }
   return sum;
}
void findX(long int n) {
   bool is_found = false;
   for (int i = 0; i <= 100; i++) {
      long int valueOnLeft = abs(n - i) + digitsSum(abs(n - i));
      long int valueOnRight = n + i + digitsSum(n + i);
      if (valueOnLeft == n) {
         is_found = true;
         cout << abs(n - i) << " ";
      }
      if (valueOnRight == n) {
         is_found = true;
         cout << (n + i) << " ";
      }
   }
   if (!is_found) {
      cout << "No numbers found";
   }
   cout << endl;
}
int main() {
   int n = 89;
   findX(n);
   return 0;
}

Đầu ra

Nếu bạn thực hiện chương trình trên, bạn sẽ nhận được kết quả sau.

76

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.