与えられた配列とのXOR和が与えられた数kである数を見つけるためのC++プログラム
たとえば、与えられた数を、その数を持つ特定の配列のXOR合計がkに等しくなるような数を見つけるという問題を解決するために。
Input: arr[] = {1, 2, 3, 4, 5}, k = 10 Output: 11 Explanation: 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 11 = 10 Input: arr[] = { 12, 23, 34, 56, 78 }, k = 6 Output: 73
このプログラムでは、A ^ B=CおよびA^C =Bの場合にxorのプロパティを使用し、これをこの問題に適用します。
解決策を見つけるためのアプローチ
このアプローチでは、xor演算子の上記のプロパティを使用します。この問題では、配列をトラバースし、数値をkで排他的論理和すると、それが答えになります。
例
上記のアプローチのC++コード
#include <bits/stdc++.h> using namespace std; int main(){ int arr[] = { 1, 2, 3, 4, 5 }; // given array int n = sizeof(arr) / sizeof(int); // size of our array int k = 10; // given k int answer = 0; for(int i = 0; i < n; i++) // traversing the array for // xor sum answer ^= arr[i]; answer ^= k; // XORing with k to get our answer cout << answer << "\n"; // printing our answer return 0; }
出力
11
上記のアプローチの説明
このアプローチでは、xor演算子のプロパティを使用するため、配列をトラバースして配列全体のxor合計を求め、そのxor合計をkと答えてから、答えを印刷します。
結論
このチュートリアルでは、指定された配列とのXOR合計が指定された数kである数を見つけることを解決します。また、この問題のC ++プログラムと、この問題を解決するための完全なアプローチ(通常)についても学びました。同じプログラムを、C、java、python、その他の言語などの他の言語で作成できます。このチュートリアルがお役に立てば幸いです。
-
指定された数値の桁を合計するC++プログラム
これは、C++言語で桁の合計を計算する例です。 例 #include<iostream> using namespace std; int main() { int x, s = 0; cout << "Enter the number : "; cin >> x; while (x != 0) { s = s + x % 10; x = x / 10;
-
Pythonで合計がターゲットに指定されているサブリストの数を見つけるプログラム
numsと呼ばれる数値のリストと別の値のターゲットがあるとすると、合計がターゲットと同じサブリストの数を見つける必要があります。 したがって、入力がnums =[3、0、3] target =3のようである場合、合計が3であるこれらのサブリストがあるため、出力は4になります。[3]、[3、0]、[0、 3]、[3]。 これを解決するには、次の手順に従います。 temp:=空のマップ temp [0]:=1 s:=0 ans:=0 0からnumsのサイズの範囲のiの場合は、 s:=s + nums [i] comp:=s-ターゲット compが一時的なものである場合