合計がkであるサブセットがないいくつかの数値を選択するC++プログラム
nとkの2つの数があるとします。合計がkに等しいサブセットがないように、1からnまでの個別の要素の最大数を選択する必要があります。見つかった場合は、選択した番号を返します。
したがって、入力がn=5のような場合。 k =3の場合、出力は[4、5、2]
になります。ステップ
これを解決するには、次の手順に従います-
for initialize i := (k + 1) / 2, when i <= k - 1, update (increase i by 1), do: print i for initialize i := k + 1, when i <= n, update (increase i by 1), do: print i
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; void solve(int n, int k) { for (int i = (k + 1) / 2; i <= k - 1; i++) { cout << i << ", "; } for (int i = k + 1; i <= n; i++) { cout << i << ", "; } } int main() { int n = 5; int k = 3; solve(n, k); }
入力
5, 3
出力
2, 4, 5,
-
最初のn個の自然数の二乗和のためのC++プログラム?
この問題では、最初のn個の自然数の2乗の合計を取得する方法を確認します。ここでは、1からnまで実行されるforループを使用しています。各ステップで、項の2乗を計算し、それを合計に追加します。このプログラムは、完了するまでにO(n)時間かかります。しかし、これをO(1)または一定時間で解きたい場合は、この級数式-を使用できます。 アルゴリズム squareNNatural(n) begin sum := 0 for i in range 1 to n, do sum := sum + i^2 &
-
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