C++で指定された3つの数値で割り切れる最大のN桁の数値
このチュートリアルでは、指定された3つの数値で割り切れる最大のn桁の数値を見つけるプログラムを作成します。
問題を解決するための手順を見てみましょう。
- nとともに3つの数字を初期化します。
- 3つの数値の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
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
Xで割り切れる最大のK桁の数値のC++プログラム?
この問題では、Xで割り切れる最大のK桁の数を見つけようとします。このタスクを実行するには、この式((10 ^ k)– 1)で最大のK桁の数を取得します。次に、数値がXで割り切れるかどうかを確認します。割り切れない場合は、この数式を使用して正確な数値を取得します。 𝑚𝑎𝑥−(𝑚𝑎𝑥 𝑚𝑜𝑑 𝑋) 1つの例は、29で割り切れる5桁の数字のようなものです。したがって、最大の5桁の数字は99999です。これは29で割り切れません。ここで、式を適用すると、-が得られます。 99999−(99999 𝑚𝑜𝑑 29)=99999−7=99992
-
3つの数字の中から最大の数字を見つけるC++プログラム
3つの数値の中で最大の数値は、ifステートメントを複数回使用して見つけることができます。これは次のようにプログラムで与えられます- 例 #include <iostream> using namespace std; int main() { int a = 5 ,b = 1 ,c = 9; if(a>b) { if(a>c) cout<<a<<" is largest number"; &n