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

C++の2つの数値の倍数のソートされたリストのN番目の倍数


あなたには3つの数字が与えられます。最初の2つの数の倍数からn番目の倍数を見つける必要があります。それをより明確に理解するために例を見てみましょう。

入力

x = 2
y = 3
n = 7

出力

10

最初のn****2の倍数は246 8 10 12 14

最初のn****3の倍数****は369 12 15 18 21

両方の倍数を組み合わせて並べ替えると、2 3 4 6 8 9 10 12 14 15 18 21になり、リストのn番目の数値は10になります。

アルゴリズム

  • ベクトルを初期化して、すべての倍数を格納します。
  • xの最初のn****倍数を見つけて、上記のベクトルに追加します。
  • ここで、yの最初のn倍を見つけます。
    • ベクターにまだ存在していない場合は、ベクターに追加します。
  • 倍数を並べ替えます。
  • ベクトルからn番目の倍数を印刷します。

実装

以下は、C++での上記のアルゴリズムの実装です

#include<bits/stdc++.h>
using namespace std;
int findNthMultiple(int x, int y, int n) {
   vector<int> multiples;
   for (int i = 1; i <= n; i++) {
      multiples.push_back(x * i);
   }
   sort(multiples.begin(), multiples.end());
   for (int i = 1, k = n; i <= n && k; i++) {
      if (!binary_search(multiples.begin(), multiples.end(), y * i)) {
         multiples.push_back(y * i);
         sort(multiples.begin(), multiples.end());
      }
   }
   return multiples[n - 1];
}
int main() {
   int x = 2, y = 3, n = 7;
   cout << findNthMultiple(x, y, n) << endl;
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

10

  1. 2つの数値を追加するC++プログラム

    加算は基本的な算術演算です。 2つの数値を加算するプログラムは、2つの数値の加算を実行し、それらの合計を画面に出力します。 2つの数字の加算を示すプログラムは次のとおりです- 例 #include <iostream> using namespace std; int main() {    int num1=15 ,num2=10, sum;    sum = num1 + num2;    cout<<"Sum of "<<num1<<" and &q

  2. C#で2つのソートされた配列をマージします

    2つのソートされた配列をマージするには、最初に2つのソートされた配列を設定します- int[] array1 = { 1, 2 }; int[] array2 = { 3, 4 }; 次に、それをリストに追加してマージします- var list = new List<int>(); for (int i = 0; i < array1.Length; i++) {    list.Add(array1[i]);    list.Add(array2[i]); } ToArray()メソッドを使用して、配列に変換し直します- int[