Сложность: easy
Дано целое число n, верните true, если и только если оно является числом Армстронга.
k-значное число n является числом Армстронга, если сумма k-й степени каждой его цифры равна n.
Пример:
Input: n = 153
Output: true
Explanation: 153 is a 3-digit number, and 153 = 1^3 + 5^3 + 3^3.
👨💻 Алгоритм:
1⃣Получите количество цифр в n, преобразовав его в строку и найдя длину.
2⃣Создайте функцию getSumOfKthPowerOfDigits(n, k), которая возвращает сумму k-й степени каждой цифры числа n.
Инициализируйте переменную result для хранения результата.
Пока n не равно 0, добавляйте k-ю степень последней цифры n к result и удаляйте последнюю цифру.
3⃣Верните true, если результат равен исходному числу n.
😎 Решение:
class Solution {
func getSumOfKthPowerOfDigits(_ n: Int, _ k: Int) -> Int {
var result = 0
var number = n
while number != 0 {
let digit = number % 10
result += Int(pow(Double(digit), Double(k)))
number /= 10
}
return result
}
func isArmstrong(_ n: Int) -> Bool {
let length = String(n).count
return getSumOfKthPowerOfDigits(n, length) == n
}
}Ставь 👍 и забирай 📚 Базу знаний