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

C++で特定の数を構成できるポイントのすべての組み合わせを印刷します


この問題では、合計スコアnが与えられます。合計スコアがnになる1、2、および3のバスケットボールポイントのすべての組み合わせを印刷します。

問題を理解するための例を見てみましょう。

Input: 4
Output:
1 1 1 1
1 1 2
1 2 1
1 3
2 1 1
2 2
3 1

この問題を解決するために、再帰を使用します。そして、残りの値n-sの修正とリソース。ここで、sはスコアです。組み合わせの合計がnになる場合は、組み合わせを印刷します。

コードは、コードの実装を示しています-

#define MAX_POINT 3
#define ARR_SIZE 100
#include <bits/stdc++.h>
using namespace std;
void printScore(int arr[], int arr_size) {
   int i;
   for (i = 0; i < arr_size; i++)
      cout<<arr[i]<<" ";
   cout<<endl;
}
void printScoreCombination(int n, int i) {
   static int arr[ARR_SIZE];
   if (n == 0) {
      printScore(arr, i);
   }
   else if(n > 0) {
      int k;
      for (k = 1; k <= MAX_POINT; k++){
         arr[i]= k;
         printScoreCombination(n-k, i+1);
      }
   }
}
int main() {
   int n = 4;
   cout<<"Different compositions formed by 1, 2 and 3 of "<<n<<" are\n";
   printScoreCombination(n, 0);
   return 0;
}
出力
Different compositions formed by 1, 2 and 3 of 4 are
1 1 1 1
1 1 2
1 2 1
1 3
2 1 1
2 2
3 1

  1. C++で特定のノードから距離kにあるすべてのノードを出力します

    この問題では、二分木、ターゲットノード、整数Kが与えられます。ターゲットノードから距離Kにあるツリーのすべてのノードを印刷する必要があります。 。 二分木 は、各ノードに最大2つのノード(1つまたは2つ/なし)を持つ特別なツリーです。 問題を理解するために例を見てみましょう K =2 ターゲットノード:9 出力 − 5 1 3. 説明 − 距離は、ノードの上位、下位、または同じレベルで取得できます。したがって、それに応じてノードを返します。 この問題を解決するには、ターゲットノードからK距離離れたノードのタイプを理解する必要があります。 上記の試験から、k個の離

  2. C ++を使用して、指定された数まで加算されるすべての組み合わせを検索します

    正の数nがあるとします。正の数のすべての組み合わせを見つける必要があります。これは、その数になります。ここでは、順列ではなく、組み合わせのみが必要です。値n=4の場合、[1、1、1、1]、[1、1、2]、[2、2]、[1、3]、[4]になります。 これは再帰を使用して解決します。組み合わせを格納する配列があり、再帰的アプローチを使用してその配列を埋めます。各組み合わせは、要素の昇順で保存されます。 例 #include<iostream> using namespace std; void getCombination(int arr[], int index, int num,