Проверьте, является ли число, образованное объединением всех элементов массива, числом Харшада или нет.
Для данного массива arr[] , состоящего из N целых чисел, задача состоит в том, чтобы проверить, является ли число, образованное объединением всех элементов массива, числом Харшада или нет.
Примеры:
Input: arr[] = { 1, 35, 69, 60}
Output: Yes
Explanation:
The number formed by concatenating array elements is “1356960”.
Sum of digits of the number = 1 + 3 + 5 + 6 + 9 + 6 + 0 = 30.
Since, the number is divisible by sum of its digits, the number is a “Harshad number”.Input: arr[] = {1, 563, 9, 59, 7, 8}
Output: Yes
Подход: идея состоит в том, чтобы преобразовать все элементы массива в их эквивалентные строки и объединить эти строки. Выполните следующие шаги, чтобы решить проблему:
- Пройдите по массиву arr[] и преобразуйте каждый элемент массива в эквивалентную ему строку.
- Объедините все строки в переменной, скажем, S.
- Инициализируйте переменную, скажем, sum, для хранения суммы цифр сгенерированного числа.
- Пройдите строку S и обновите сумму как sum += int (s[i]).
- Инициализируйте переменную, скажем, N = 0, для хранения числа, полученного путем объединения всех символов строки S mod sum.
- Пройдите строку S и обновите N как N = (N * 10 + int (S[i])) % sum.
- Выведите Да, если N = 0.
- В противном случае выведите Нет .
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(N)
Вспомогательное пространство: O(N)