1134. Armstrong Number
leetcode easy
#csharp#easy#leetcode#math#string
Task
Дано целое число 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.
C# solution
matched/originalpublic class Solution {
public int GetSumOfKthPowerOfDigits(int n, int k) {
int result = 0;
while (n != 0) {
int digit = n % 10;
result += (int)Math.Pow(digit, k);
n /= 10;
}
return result;
}
public bool IsArmstrong(int n) {
int length = n.ToString().Length;
return GetSumOfKthPowerOfDigits(n, length) == n;
}
}C++ solution
auto-draft, review before submit#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public int GetSumOfKthPowerOfDigits(int n, int k) {
int result = 0;
while (n != 0) {
int digit = n % 10;
result += (int)Math.Pow(digit, k);
n /= 10;
}
return result;
}
public bool IsArmstrong(int n) {
int length = n.ToString().size();
return GetSumOfKthPowerOfDigits(n, length) == n;
}
}Java solution
matched/originalclass Solution {
public int getSumOfKthPowerOfDigits(int n, int k) {
int result = 0;
while (n != 0) {
result += Math.pow(n % 10, k);
n /= 10;
}
return result;
}
public boolean isArmstrong(int n) {
int length = String.valueOf(n).length();
return getSumOfKthPowerOfDigits(n, length) == n;
}
}Python solution
matched/originalclass Solution:
def getSumOfKthPowerOfDigits(self, n: int, k: int) -> int:
result = 0
while n != 0:
result += (n % 10) ** k
n //= 10
return result
def isArmstrong(self, n: int) -> bool:
length = len(str(n))
return self.getSumOfKthPowerOfDigits(n, length) == nGo solution
matched/originalimport "math"
func getSumOfKthPowerOfDigits(n, k int) int {
result := 0
for n != 0 {
digit := n % 10
result += int(math.Pow(float64(digit), float64(k)))
n /= 10
}
return result
}
func isArmstrong(n int) bool {
length := len(strconv.Itoa(n))
return getSumOfKthPowerOfDigits(n, length) == n
}Explanation
Algorithm
Получите количество цифр в n, преобразовав его в строку и найдя длину.
Создайте функцию getSumOfKthPowerOfDigits(n, k), которая возвращает сумму k-й степени каждой цифры числа n.
Инициализируйте переменную result для хранения результата.
Пока n не равно 0, добавляйте k-ю степень последней цифры n к result и удаляйте последнюю цифру.
Верните true, если результат равен исходному числу n.
😎