Числовая программа Армстронга на TypeScript: изучение нескольких методов проверки чисел Армстронга

Я буду рад помочь вам со статьей о числах Армстронга в 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 соответствующими действиями в вашем коде.