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