
- C++ Basics
- C++ Home
- C++ Overview
- C++ Environment Setup
- C++ Basic Syntax
- C++ Comments
- C++ Data Types
- C++ Variable Types
- C++ Variable Scope
- C++ Constants/Literals
- C++ Modifier Types
- C++ Storage Classes
- C++ Operators
- C++ Loop Types
- C++ Decision Making
- C++ Functions
- C++ Numbers
- C++ Arrays
- C++ Strings
- C++ Pointers
- C++ References
- C++ Date & Time
- C++ Basic Input/Output
- C++ Data Structures
- C++ Object Oriented
- C++ Classes & Objects
- C++ Inheritance
- C++ Overloading
- C++ Polymorphism
- C++ Abstraction
- C++ Encapsulation
- C++ Interfaces
Minimum number of elements to be removed to make XOR maximum using C++.
Problem statement
Given a number N. The task is to find the minimum number of elements to be removed in between to N such that the XOR obtained from the remaining elements is maximum.
Algorithm
1. If n is 1 or 2 then there is no need to remove any element. Hence answer is zero 2. Find a number which is power of 2 and greater than or equal to. Let us call this number as nextNumber 2.1. If n == nextNumber or n == (nextNumber – 1) then answer is 1 2.2. If n = (nextNumber -2) then answer is 0 3. If n is an even then answer is 1 otherwise 2
Example
#include <iostream> using namespace std; int nextPowerOf2(int n){ if (n && !(n & (n - 1))) { return n; } int cnt = 0; while (n) { n = n / 2; ++cnt; } return (1 << cnt); } int elmentsToBeRemoved(int n){ if (n == 1 || n == 2) { return 0; } int nextNumber = nextPowerOf2(n); if (n == nextNumber || n == nextNumber -1) { return 1; } else if (n == nextNumber - 2) { return 0; } else if (n & 1) { return 2; } else { return 1; } } int main(){ int n = 10; cout << "Numbers to be removed = " << elmentsToBeRemoved(n) << endl; return 0; }
Output
When you compile and execute the above program. It generates the following output −
Numbers to be removed = 1s
- Related Articles
- Minimum number of elements that should be removed to make the array good using C++.
- Minimum number of moves to make all elements equal using C++.
- Minimum number of elements to add to make median equals x using C++.
- Program to find number of elements can be removed to make odd and even indexed elements sum equal in Python
- Minimum number of points to be removed to get remaining points on one side of axis using C++.
- Program to count minimum invalid parenthesis to be removed to make string correct in Python
- Number of digits to be removed to make a number divisible by 3 in C++
- Program to find minimum number of intervals to be removed to remove overlaps in C++
- Minimum operations to make XOR of array zero in C++
- Minimum number of operations on an array to make all elements 0 using C++.
- Minimum number of Parentheses to be added to make it valid in C++
- Print digit’s position to be removed to make a number divisible by 6 in C++
- Minimum number of items to be delivered using C++.
- Program to find minimum number of days to make m bouquets using Python
- Find minimum number to be divided to make a number a perfect square in C++

Advertisements