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

số thứ n có tổng các chữ số là mười trong C ++

Các số có tổng các chữ số bằng 10 là

19, 28, 37, 46, 55, 64, 73, 82, 91, v.v.,

Nếu bạn quan sát dãy số, mỗi số tăng lên 9. Có những số trong dãy số trên có tổng các chữ số không bằng 10 trong khi tăng thêm 9. Nhưng, bạn sẽ nhận được tất cả các số có tổng các chữ số bằng 10.

Vì vậy, chúng ta có thể có một vòng lặp tăng thêm 9 và kiểm tra tổng các chữ số và tìm số thứ n. Hãy xem một số ví dụ

Đầu vào

3
7

Kết quả đầu ra

37
73

Thuật toán

  • Khởi tạo số n
  • Khởi tạo bộ đếm thành 0.
  • Viết một vòng lặp lặp lại từ 19
    • Nếu tổng các chữ số của số hiện tại là 10, hãy tăng bộ đếm lên 1.
    • Nếu bộ đếm bằng n thì trả về số hiện tại.
    • Tăng biến lặp lại thêm 9.

Thực hiện

Sau đây là cách thực hiện thuật toán trên trong C ++

#include <bits/stdc++.h>
using namespace std;
int findNthNumber(int n) {
   int count = 0, i = 19;
   while (true) {
      int sum = 0;
      for (int number = i; number > 0; number = number / 10) {
         sum = sum + number % 10;
      }
      if (sum == 10) {
         count++;
      }
      if (count == n) {
         return i;
      }
      i += 9;
   }
   return -1;
}
int main() {
   int n = 7;
   cout << findNthNumber(7) << endl;
   return 0;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

73