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

与えられた配列との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、その他の言語などの他の言語で作成できます。このチュートリアルがお役に立てば幸いです。


  1. 指定された数値の桁を合計する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;

  2. 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が一時的なものである場合