Я буду рад помочь вам со статьей о числах Армстронга в TypeScript. Число Армстронга — это число, равное сумме своих цифр, каждая из которых возведена в степень количества цифр. Например, 153 — это число Армстронга, потому что 1^3 + 5^3 + 3^3 = 153.
Вот несколько методов, которые можно использовать, чтобы проверить, является ли число числом Армстронга в TypeScript:
Метод 1: использование цикла
function isArmstrongNumber(num: number): boolean {
const numStr = num.toString();
const power = numStr.length;
let sum = 0;
for (let i = 0; i < numStr.length; i++) {
const digit = parseInt(numStr[i]);
sum += Math.pow(digit, power);
}
return sum === num;
}
console.log(isArmstrongNumber(153)); // Output: true
console.log(isArmstrongNumber(123)); // Output: false
Метод 2: использование сокращения массива
function isArmstrongNumber(num: number): boolean {
const numStr = num.toString();
const power = numStr.length;
const sum = numStr
.split('')
.reduce((acc, digit) => acc + Math.pow(parseInt(digit), power), 0);
return sum === num;
}
console.log(isArmstrongNumber(153)); // Output: true
console.log(isArmstrongNumber(123)); // Output: false
Метод 3: использование рекурсии
function isArmstrongNumber(num: number): boolean {
const numStr = num.toString();
const power = numStr.length;
function calculateSum(str: string, index: number, currentSum: number): number {
if (index === str.length) {
return currentSum;
}
const digit = parseInt(str[index]);
const updatedSum = currentSum + Math.pow(digit, power);
return calculateSum(str, index + 1, updatedSum);
}
const sum = calculateSum(numStr, 0, 0);
return sum === num;
}
console.log(isArmstrongNumber(153)); // Output: true
console.log(isArmstrongNumber(123)); // Output: false
Метод 4. Использование методов toString и уменьшитьRight
function isArmstrongNumber(num: number): boolean {
const numStr = num.toString();
const power = numStr.length;
const sum = [...numStr]
.map(Number)
.reduceRight((acc, digit) => acc + Math.pow(digit, power), 0);
return sum === num;
}
console.log(isArmstrongNumber(153)); // Output: true
console.log(isArmstrongNumber(123)); // Output: false
Метод 5: использование цикла while
function isArmstrongNumber(num: number): boolean {
const numStr = num.toString();
const power = numStr.length;
let sum = 0;
let index = 0;
while (index < numStr.length) {
const digit = parseInt(numStr[index]);
sum += Math.pow(digit, power);
index++;
}
return sum === num;
}
console.log(isArmstrongNumber(153)); // Output: true
console.log(isArmstrongNumber(123)); // Output: false
Это пять различных методов проверки того, является ли число числом Армстронга в TypeScript. Вы можете выбрать тот, который лучше всего соответствует вашим потребностям. Не забудьте заменить инструкции console.log соответствующими действиями в вашем коде.