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[