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
结论
如果您对本教程有任何疑问,请在评论部分提及。
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西