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
-
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
-
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[