C++中可以被給定的三個數字整除的最大 N 位數字


在本教程中,我們將編寫一個程式來查詢可被給定的三個數字整除的最大 n 位數字。

讓我們看看解決此問題的方法。

  • 初始化三個數字和 n。
  • 找到三個數字的 LCM。
  • 儲存具有 n 位的最大數字。
  • 如果最大數字能被 n 整除,則返回它。
  • 否則檢查透過減去上述步驟中的餘數而獲得的數字。

示例

讓我們看看程式碼。

 即時演示

#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;
}

輸出

如果你執行上面的程式碼,那麼你將獲得以下結果。

9912

結論

如果你對本教程有任何疑問,請在評論區中提到。

更新於: 2021-04-09

226 次訪問

開啟你的職業生涯

完成課程取得認證

開始
廣告