方程式x1+x2+…の積分解の数。 + xN =C++ではk
方程式の解は次のとおりです
- 方程式の非負の積分解の数は$\left(\ begin {array} {c} n-k + 1 \\ k \ end {array} \ right)$
- 方程式の正の積分解の数は$\left(\ begin {array} {c} k-1 \\ n-1 \ end {array} \ right)$
両方を追加して、必要な答えを取得します。例を見てみましょう。
入力
n = 4 k = 7
出力
140
アルゴリズム
- 番号nとkを初期化します。
- 負でない数と正の数の積分解を見つけます。
- 両方を追加します。
- 答えを返します。
実装
以下は、C++での上記のアルゴリズムの実装です
#include <bits/stdc++.h> using namespace std; int factorial(int n) { int product = 1; for (int i = 2; i <= n; i++) { product *= i; } return product; } int nCr(int n, int r) { return factorial(n) / (factorial(n - r) * factorial(r)); } int main() { int n = 4; int k = 7; cout << nCr(n + k - 1, k) + nCr(k - 1, n - 1) &l<t; endl; return 0; }
出力
上記のコードを実行すると、次の結果が得られます。
140
-
C++で配布されるテディの総数を最小限に抑えます
問題の説明 N人の学生と、学生が取得したマークを表す配列が与えられます。学校は彼らに価格としてテディを与えるために殺害しました。しかし、学校はお金を節約したいので、次の制約を課すことによって、配布されるテディの総数を最小限に抑えます- すべての生徒は少なくとも1つのテディを取得する必要があります 2人の生徒が隣り合って座っている場合、点数の高い生徒はもっと多くの生徒を獲得する必要があります 2人の生徒が同じ点数を持っている場合、異なる数のテディを取得できます 例 3人の生徒がいて、取得したマークが配列で-として表されているとします。 arr[] = {2, 3, 3} So, to
-
C++のCHAR_BIT
CHAR_BITは、charのビット数です。これは、C++言語の「limits.h」ヘッダーファイルで宣言されています。 1バイトあたり8ビットです。 これがC++言語のCHAR_BITの例です 例 #include <bits/stdc++.h> using namespace std; int main() { int x = 28; int a = CHAR_BIT*sizeof(x); stack<bool> s; cout << "T