XOR всех элементов массива, которые являются идеальными квадратами

Опубликовано: 25 Февраля, 2023

Дан массив arr[] , содержащий N целых чисел, задача состоит в том, чтобы найти XOR всех элементов этого массива, которые являются идеальными квадратами.

Примеры:

Input: arr[] = {3, 9, 16, 12, 13, 15} 
Output: 25
Explanation: Only 9, 16 are the perfect squares in the given array.
So the XOR of 9 and 16 is 25, XOR = 9 ^ 16 = 25

Input: arr[] = { 3, 9, 12, 13, 15 } 
Output: 9
Explanation: Only 9 is the perfect square so the answer will be 9.

Подход: Чтобы решить проблему, следуйте следующей идее:

In order to find the XOR of perfect square elements in the array, simply iterate through the array and find if an element is a perfect square or not, and then calculate the XOR using. 

Выполните следующие шаги, чтобы вычислить ответ:

  • Объявите переменную (например, xor_arr ) для хранения ответа и инициализируйте ее значением 0.
  • Итерация с начала массива:
    • Для каждого элемента в массиве проверьте, является ли он идеальным квадратом или нет.
      • Простой способ проверить, если ceil и floor квадратного корня элемента равны, то число является идеальным квадратом.
    • Найдите XOR идеального квадратного элемента и сохраните его в переменной результата с помощью оператора '^'.
  • Возвратите переменную xor_arr , которая хранит XOR всех элементов идеального квадрата в массиве.

Ниже приведена реализация описанного выше подхода.

Временная сложность: O(N)
Вспомогательное пространство: O(1)