C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

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

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. Xで割り切れる最大のK桁の数値のC++プログラム?

    この問題では、Xで割り切れる最大のK桁の数を見つけようとします。このタスクを実行するには、この式((10 ^ k)– 1)で最大のK桁の数を取得します。次に、数値がXで割り切れるかどうかを確認します。割り切れない場合は、この数式を使用して正確な数値を取得します。 𝑚𝑎𝑥−(𝑚𝑎𝑥 𝑚𝑜𝑑 𝑋) 1つの例は、29で割り切れる5桁の数字のようなものです。したがって、最大の5桁の数字は99999です。これは29で割り切れません。ここで、式を適用すると、-が得られます。 99999−(99999 𝑚𝑜𝑑 29)=99999−7=99992

  2. 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