Измените данный массив, заменив каждый элемент суммой или произведением их цифр на основе заданного условия.
Опубликовано: 22 Сентября, 2022
Учитывая массив arr[] , состоящий из N целых чисел, задача состоит в том, чтобы изменить элементы массива после выполнения только одной из следующих операций над каждым элементом массива:
- Если количество четных цифр больше, чем количество нечетных цифр в элементе массива, то обновите этот элемент до суммы всех цифр этого элемента.
- В противном случае обновите этот элемент до произведения всех цифр этого элемента.
Примеры:
Input: arr[] = {113, 141, 214, 3186}
Output: 3 4 7 3186
Explanation:
Following are the operation performed on each array elements:
- For element arr[0](= 113): count of even and odd digits are 0 and 3. As count of even < count of odd digit, therefore update arr[0](= 113) to the product of each digit of the number 113 i.e., 1 * 1 * 3 = 3.
- For element arr[1](= 141): count of even and odd digits are 1 and 2. As count of even < count of odd digit, therefore update arr[1](= 141) to the product of each digit of the number 141 i.e., 1 * 4 * 1 = 4.
- For element arr[2]:(= 214) count of even and odd digits are 2 and 1. As count of even > count of odd digit, therefore update arr[2](= 214) to the sum of each digit of the number 214 i.e., 2 + 1 + 4 = 7.
- For element arr[3](= 3186): count of even and odd digits are 2 and 2. As count of even is the same as the count of odd digit, then no operation is performed. Therefore, arr[3](= 3186) remains the same.
After the above operations, the array modifies to {3, 4, 7, 3186}.
Input: arr[] = {2, 7, 12, 22, 110}
Output: 2 7 12 4 0
Подход: Данная проблема может быть решена путем выполнения данных операций для каждого элемента массива и вывода результата соответственно. Выполните следующие шаги, чтобы решить проблему:
- Пройдите по заданному массиву arr[] и выполните следующие шаги:
- Найдите количество четных и нечетных цифр текущего элемента массива.
- Если количество четных и нечетных цифр одинаково, то никаких операций выполнять не нужно.
- Если количество четных цифр больше, чем количество нечетных цифр в элементе массива, то обновите этот элемент до суммы всех цифр этого элемента.
- В противном случае обновите этот элемент до произведения всех цифр этого элемента.
- После выполнения вышеуказанных шагов напечатайте массив arr[] как измененный массив.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(N)
Вспомогательное пространство: O(1)