#ЛитКод
Задача:
728. Self Dividing NumbersНапример, 128 является саморазделяющимся числом, потому что 128 % 1 == 0, 128 % 2 == 0 и 128 % 8 == 0. Саморазделяющееся число не может содержать цифру ноль. Если даны два целых числа left и right, верните список всех саморазделяющихся чисел в диапазоне [left, right].
Пример:Input: left = 1, right = 22
Output: [1,2,3,4,5,6,7,8,9,11,12,15,22]
👨💻
Алгоритм:1⃣Переберите все числа в диапазоне от left до right.
2⃣Для каждого числа проверьте, является ли оно саморазделяющимся: Разделите число на его цифры. Убедитесь, что ни одна цифра не равна нулю и число делится на каждую из своих цифр без остатка.
3⃣Добавьте саморазделяющиеся числа в результативный список и верните его.
😎
Решение:
class Solution {
func selfDividingNumbers(_ left: Int, _ right: Int) -> [Int] {
func isSelfDividing(_ num: Int) -> Bool {
var temp = num
while temp > 0 {
let digit = temp % 10
if digit == 0 || num % digit != 0 {
return false
}
temp /= 10
}
return true
}
var result = [Int]()
for num in left...right {
if isSelfDividing(num) {
result.append(num)
}
}
return result
}
}
👉
Новости 👉
База вопросов