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
結論
如果你對本教程有任何疑問,請在評論區中提到。
廣告