The XOR Gate
PROBLEM :
Construct an N input XOR Gate. An XOR Gate returns 1 if odd number of its inputs are 1, otherwise 0.
Input:
The first line of input takes the number of test cases, T. Then T test cases follow.Each test case consists of 2 lines. The first line of each test case takes the number of inputs to the XOR Gate, N. The second line of each test case takes N space separated integers denoting the inputs to the XOR Gate. Note that the inputs can be either 1's or 0's.
Output:
For each test case on a new line print the output of the N input XOR Gate.
Constraints:
1<=T<=100
1<=N<=100
Example:
Input:
3
2
1 1
3
1 0 1
4
1 1 1 0
Output:
0
0
1
--------------------------------------------------------------------------------
SIMPLE c++ IMPLEMENTATION :
--------------------------------------------------------------------------------
#include<iostream>
using namespace std;
int result(int [],int ) ;
int main()
{
int t,arr[100],i,no ;
cin>>t ;
while(t--)
{
cin>>no ;
for(i=0;i<no;i++)
cin>>arr[i] ;
cout<<result(arr,no) ;
cout<<endl ;
}
return 0;
}
int result(int arr[],int no)
{
int i ,ans ;
ans=0 ;
for(i=0;i<no;i++)
ans=ans^arr[i] ; // ^ (bitwise XOR) Takes two numbers as operand and does XOR on every bit // of two numbers. The result of XOR is 1 if the two bits are different.
return ans ;
}
---------------------------------------------------------------------------------
Construct an N input XOR Gate. An XOR Gate returns 1 if odd number of its inputs are 1, otherwise 0.
Input:
The first line of input takes the number of test cases, T. Then T test cases follow.Each test case consists of 2 lines. The first line of each test case takes the number of inputs to the XOR Gate, N. The second line of each test case takes N space separated integers denoting the inputs to the XOR Gate. Note that the inputs can be either 1's or 0's.
Output:
For each test case on a new line print the output of the N input XOR Gate.
Constraints:
1<=T<=100
1<=N<=100
Example:
Input:
3
2
1 1
3
1 0 1
4
1 1 1 0
Output:
0
0
1
--------------------------------------------------------------------------------
SIMPLE c++ IMPLEMENTATION :
--------------------------------------------------------------------------------
#include<iostream>
using namespace std;
int result(int [],int ) ;
int main()
{
int t,arr[100],i,no ;
cin>>t ;
while(t--)
{
cin>>no ;
for(i=0;i<no;i++)
cin>>arr[i] ;
cout<<result(arr,no) ;
cout<<endl ;
}
return 0;
}
int result(int arr[],int no)
{
int i ,ans ;
ans=0 ;
for(i=0;i<no;i++)
ans=ans^arr[i] ; // ^ (bitwise XOR) Takes two numbers as operand and does XOR on every bit // of two numbers. The result of XOR is 1 if the two bits are different.
return ans ;
}
---------------------------------------------------------------------------------
Comments
Post a Comment