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

Chữ số N lớn nhất chia hết cho ba số đã cho trong C ++

Trong hướng dẫn này, chúng ta sẽ viết một chương trình tìm số lớn nhất có n chữ số chia hết cho ba số đã cho.

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

  • Khởi tạo ba số cùng với n.
  • Tìm LCM của ba số.
  • Lưu trữ số lớn nhất có n chữ số.
  • Nếu số lớn nhất chia hết cho n thì trả lại số đó.
  • Kiểm tra khác để tìm số thu được khi trừ phần còn lại trong bước trên.

Ví dụ

Hãy xem mã.

#include <bits/stdc++.h>
using namespace std;
int LCM(int x, int y, int z) {
   int ans = ((x * y) / (__gcd(x, y)));
   return ((z * ans) / (__gcd(ans, z)));
}
int findNumber(int n, int x, int y, int z) {
   int lcm = LCM(x, y, z);
   int largestNDigitNumber = pow(10, n) - 1;
   int remainder = largestNDigitNumber % lcm;
   if (remainder == 0) {
      return largestNDigitNumber;
   }
   largestNDigitNumber -= remainder;
   if (largestNDigitNumber >= pow(10, n - 1)) {
      return largestNDigitNumber;
   }
   return 0;
}
int main() {
   int n = 4, x = 6, y = 7, z = 8;
   int result = findNumber(n, x, y, z);
   if (result != 0) {
      cout << result << endl;
   }else {
      cout << "Not possible" << 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.

9912

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.