C++で指定された条件を満たすサブセットをカウントします
数値の配列と整数xを入力として指定します。目標は、arr []のすべてのサブセットを見つけて、そのセットの個々の要素とそれらの合計をxで完全に割り切れるようにすることです。
例
入力
arr[] = {1,2,3,4,5,6} x=3
出力
Count of subsets that satisfy the given condition :3
説明
The subsets will be: [3], [6], [3,6]
入力
arr[] = {1,2,3,4,5,6} x=4
出力
Count of subsets that satisfy the given condition :1
説明
The subsets will be: [4]
以下のプログラムで使用されるアプローチは次のとおりです −
このアプローチでは、xで完全に割り切れるarr []の要素をカウントしてから、2 count を返します。 必要なサブセット数として-1。
-
整数配列arr[]を取ります。
-
xを入力として使用します。
-
関数count(int arr []、int n、int x)は、配列とxを受け取り、指定された条件を満たすサブセットの数を返します。
-
xが1の場合、すべての要素が分割されるため、return
例
#include <bits/stdc++.h> #define ll long long int using namespace std; int sub_sets(int arr[], int size, int val){ int count = 0; if (val == 1){ count = pow(2, size) − 1; return count; } for (int i = 0; i < size; i++){ if (arr[i] % val == 0){ count++; } } count = pow(2, count) − 1; return count; } int main(){ int arr[] = { 4, 6, 1, 3, 8, 10, 12 }, val = 4; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Count of sub−sets that satisfy the given condition are: "<<sub_sets(arr, size, val); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of sub−sets that satisfy the given condition are: 7
-
C++のグリッドで指定された方向に可能な移動をカウントします
サイズnxmのグリッドと開始点x、yを表す2つの変数nとmです。 また、移動((1,1)、(2,2))などとしてグリッド内を移動するために実行できるステップ/移動のペアも指定されます。移動の各ペアは、x、y軸で実行されるステップの単位を表します。目標は、境界[1、n] X [1、m]内のグリッド内をトラバースするために実行できる合計ステップを見つけることです。nが5、mが4、現在の位置が2、2で、選択されたステップが( 1、-1)次に、このステップを1回実行すると、(3,1)になります。このステップを再度実行すると、(4、-1)になります。これは、-1が範囲外であるため無効です。 例
-
C++で数値を除算する数値の桁数を検索します
番号が与えられていると仮定します。数を均等に分割する数の桁数を数える必要があります。数値が1012で、結果が3であるとします。1012を均等に分割する3桁の1、1、および2があります。 これを解決するために、モジュラス演算を使用して数値の各桁を見つけ、数値がその桁で割り切れるかどうかを確認します。割り切れる場合は、カウンターを増やします。数字が0の場合は、その数字を無視します。 例 #include<iostream> using namespace std; int countDivDigit(int num) { int c