C ++中可被给定三个数字整除的最大N位数字
在本教程中,我们将编写一个程序来查找可被给定三个数字整除的最大n位数字。
让我们看看解决问题的步骤。
与n一起初始化三个数字。
找出三个数字的LCM。
用n位存储最大的数字。
如果最大数可以被n整除,则返回它。
否则检查从上述步骤中减去余数获得的数字。
示例
让我们看看代码。
#include输出结果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
结论
如果您对本教程有任何疑问,请在评论部分提及。