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
结论
如果你对本教程有任何疑问,请在评论区中提到。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP