Given an integer N. The task is to find the XOR and OR of all N digit palindromic numbers.
Examples
Input: 3
Output: XOR = 714 and OR = 1023
Input: 4
Output: XOR = 4606 and OR = 16383
Approach:
- Find the starting and ending number of N-digit palindromic number by:
starting number = pow(10, n - 1) ending number = pow(10, n) - 1
- Iterate over starting number till ending number and check whether that number is palindromic or not.
- If the number is palindromic, then take XOR and OR of that number separately.
- Else proceed for next iteration and print the value of XOR and OR after all iterations.
Below is the implementation of the above approach:
C++
// C++ program to find the XOR// and OR of all palindrome numbers// of N digits#include <bits/stdc++.h>using namespace std;// Function to check if a number// is palindrome or notbool ispalin(int num){ // Convert the num n to string string s = to_string(num); int st = 0, ed = s.size() - 1; // Iterate over string to // check whether it is // palindromic or not while (st <= ed) { if (s[st] != s[ed]) return false; st++; ed--; } return true;}// Function to find XOR of all// N-digits palindrome numbervoid CalculateXORandOR(int n){ // To store the XOR and OR of all // palindromic number int CalculateXOR = 0; int CalculateOR = 0; // Starting N-digit // palindromic number int start = pow(10, n - 1); // Ending N-digit // palindromic number int end = pow(10, n) - 1; // Iterate over starting and /// ending number for (int i = start; i <= end; i++) { // To check if i is // palindromic or not if (ispalin(i)) { CalculateXOR = CalculateXOR ^ i; CalculateOR = CalculateOR | i; } } // Print the XOR and OR of all // palindromic number cout << "XOR = " << CalculateXOR; cout << " OR = " << CalculateOR;}// Driver Codeint main(){ int n = 4; CalculateXORandOR(n); return 0;} |
Java
// Java program to find the XOR// and OR of all palindrome numbers// of N digitsclass GFG{// Function to check if a number// is palindrome or notstatic boolean ispalin(int num){ // Convert the num n to string String s = Integer.toString(num); int st = 0, ed = s.length() - 1; // Iterate over string to // check whether it is // palindromic or not while (st <= ed) { if (s.charAt(st) != s.charAt(ed)) return false; st++; ed--; } return true;}// Function to find XOR of all// N-digits palindrome numberstatic void CalculateXORandOR(int n){ // To store the XOR and OR of all // palindromic number int CalculateXOR = 0; int CalculateOR = 0; // Starting N-digit // palindromic number int start = (int)Math.pow(10, n - 1); // Ending N-digit // palindromic number int end = (int)Math.pow(10, n) - 1; // Iterate over starting and /// ending number for (int i = start; i <= end; i++) { // To check if i is // palindromic or not if (ispalin(i)) { CalculateXOR = CalculateXOR ^ i; CalculateOR = CalculateOR | i; } } // Print the XOR and OR of all // palindromic number System.out.print("XOR = " + CalculateXOR); System.out.println(" OR = " + CalculateOR);}// Driver Codepublic static void main (String[] args) { int n = 4; CalculateXORandOR(n);}}// This code is contributed by AnkitRai01 |
Python3
# Python3 program to find the XOR # and OR of all palindrome numbers # of N digits # Function to check if a number # is palindrome or not def ispalin(num) : # Convert the num n to string s = str(num); st = 0; ed = len(s) - 1; # Iterate over string to # check whether it is # palindromic or not while (st <= ed) : if (s[st] != s[ed]) : return False; st += 1; ed -= 1; return True; # Function to find XOR of all # N-digits palindrome number def CalculateXORandOR(n) : # To store the XOR and OR of all # palindromic number CalculateXOR = 0; CalculateOR = 0; # Starting N-digit # palindromic number start = 10 ** (n - 1); # Ending N-digit # palindromic number end = (10**n) - 1; # Iterate over starting and # ending number for i in range( start, end + 1) : # To check if i is # palindromic or not if (ispalin(i)) : CalculateXOR = CalculateXOR ^ i; CalculateOR = CalculateOR | i; # Print the XOR and OR of all # palindromic number print("XOR =", CalculateXOR,end = " "); print("OR = ", CalculateOR); # Driver Code if __name__ == "__main__" : n = 4; CalculateXORandOR(n); # This code is contributed by AnkitRai01 |
C#
// C# program to find the XOR// and OR of all palindrome numbers// of N digitsusing System;class GFG{// Function to check if a number// is palindrome or notstatic bool ispalin(int num){ // Convert the num n to string string s = num.ToString(); int st = 0; int ed = s.Length - 1; // Iterate over string to // check whether it is // palindromic or not while (st <= ed) { if (s[st] != s[ed]) return false; st++; ed--; } return true;}// Function to find XOR of all// N-digits palindrome numberstatic void CalculateXORandOR(int n){ // To store the XOR and OR of all // palindromic number int CalculateXOR = 0; int CalculateOR = 0; // Starting N-digit // palindromic number int start = (int)Math.Pow(10, n - 1); // Ending N-digit // palindromic number int end = (int)Math.Pow(10, n) - 1; // Iterate over starting and /// ending number for (int i = start; i <= end; i++) { // To check if i is // palindromic or not if (ispalin(i)) { CalculateXOR = CalculateXOR ^ i; CalculateOR = CalculateOR | i; } } // Print the XOR and OR of all // palindromic number Console.Write("XOR = " + CalculateXOR); Console.WriteLine(" OR = " + CalculateOR);}// Driver Codepublic static void Main (string[] args) { int n = 4; CalculateXORandOR(n);}}// This code is contributed by AnkitRai01 |
Javascript
<script>// Javascript program to find the XOR// and OR of all palindrome numbers// of N digits// Function to check if a number// is palindrome or notfunction ispalin(num){ // Convert the num n to string let s = num.toString(); let st = 0, ed = s.length - 1; // Iterate over string to // check whether it is // palindromic or not while (st <= ed) { if (s[st] != s[ed]) return false; st++; ed--; } return true;}// Function to find XOR of all// N-digits palindrome numberfunction CalculateXORandOR(n){ // To store the XOR and OR of all // palindromic number let CalculateXOR = 0; let CalculateOR = 0; // Starting N-digit // palindromic number let start = Math.pow(10, n - 1); // Ending N-digit // palindromic number let end = Math.pow(10, n) - 1; // Iterate over starting and /// ending number for (let i = start; i <= end; i++) { // To check if i is // palindromic or not if (ispalin(i)) { CalculateXOR = CalculateXOR ^ i; CalculateOR = CalculateOR | i; } } // Print the XOR and OR of all // palindromic number document.write("XOR = " + CalculateXOR); document.write(" OR = " + CalculateOR);}// Driver Code let n = 4; CalculateXORandOR(n);</script> |
XOR = 4606 OR = 16383
Time Complexity: O(10n)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
