# Sum vs XOR

### Problem Statement :

```Given an integer , find each  such that:
0 <= x <= n
n + x = n+x
where + denotes the bitwise XOR operator. Return the number of x's satisfying the criteria.

Example
n = 4
There are four values that meet the criteria:
4 + 0 = 4 + 0 = 4
4 + 1 = 4 + 1 = 5
4 + 2 = 4 + 2 = 6
4 + 3 = 4 + 3 = 7
Return 4.

Function Description

Complete the sumXor function in the editor below.

sumXor has the following parameter(s):
- int n: an integer

Returns
- int: the number of values found

Input Format

A single integer, n.

Constraints

0 <= n <= 10^15```

### Solution :

```                            ```Solution in C :

In C++ :

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <unordered_map>

using namespace std;

int main(){
long long n;
scanf("%lld", &n);
long long res=1;
while(n){
if(n%2 == 0) res *= 2;
n /= 2;
}
printf("%lld", res);
return 0;
}

In Java :

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long n = in.nextLong();
int zeroCount = 0;
while (n>0) {
if (n%2==0)
zeroCount++;
n/=2;
}
System.out.println(1l<<zeroCount);
}
}

In C :

#include <stdio.h>

int main(){
long long int n,m=1;
scanf("%lld",&n);
while(n>0){
if(n%2==0)m*=2;
n/=2;
}
printf("%lld\n",m);
return 0;
}

In Python3 :

#!/bin/python3

import sys

n = int(input().strip())
print(1 if n == 0 else 1 << (bin(n)[2:].count('0')))```
```

## Delete a Node

Delete the node at a given position in a linked list and return a reference to the head node. The head is at position 0. The list may be empty after you delete the node. In that case, return a null value. Example: list=0->1->2->3 position=2 After removing the node at position 2, list'= 0->1->-3. Function Description: Complete the deleteNode function in the editor below. deleteNo

## Print in Reverse

Given a pointer to the head of a singly-linked list, print each data value from the reversed list. If the given list is empty, do not print anything. Example head* refers to the linked list with data values 1->2->3->Null Print the following: 3 2 1 Function Description: Complete the reversePrint function in the editor below. reversePrint has the following parameters: Sing

Given the pointer to the head node of a linked list, change the next pointers of the nodes so that their order is reversed. The head pointer given may be null meaning that the initial list is empty. Example: head references the list 1->2->3->Null. Manipulate the next pointers of each node in place and return head, now referencing the head of the list 3->2->1->Null. Function Descriptio