Programa de Kotlin para verificar el número Armstrong

En este programa, aprenderá a verificar si un número dado es un número Armstrong o no. Aprenderá a hacer esto usando un bucle while en Kotlin.

Un entero positivo se llama número de Armstrong de orden n si

abcd… = a n + b n + c n + d n +…

En el caso de un número Armstrong de 3 dígitos, la suma de los cubos de cada dígito es igual al número en sí. Por ejemplo:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 es un número de Armstrong. 

Ejemplo 1: Verifique el número Armstrong para un número de 3 dígitos

 fun main(args: Array) ( val number = 371 var originalNumber: Int var remainder: Int var result = 0 originalNumber = number while (originalNumber != 0) ( remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), 3.0).toInt() originalNumber /= 10 ) if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") ) 

Cuando ejecute el programa, la salida será:

 371 es un número de Armstrong.
  • Primero, el valor de un número dado (número) se almacena en otra variable entera, originalNumber. Esto se debe a que necesitamos comparar los valores del número final y el número original al final.
  • Luego, se usa un bucle while para recorrer originalNumber hasta que sea igual a 0.
    • En cada iteración, el último dígito de num se almacena en el resto.
    • Luego, el resto se alimenta con 3 (número de dígitos) usando la Math.pow()función y se agrega al resultado.
      Aquí, el resto se convierte a Doubleporque powsolo acepta Doubleparámetros, y su valor se convierte nuevamente aInt
    • Luego, el último dígito se elimina del número original después de la división por 10.
  • Finalmente, se comparan el resultado y el número. Si es igual, es un número de Armstrong. Si no, no lo es.

Aquí está el código Java equivalente: Programa Java para verificar el número Armstrong

Ejemplo 2: Verifique el número de Armstrong para n dígitos

 fun main(args: Array) ( val number = 1634 var originalNumber: Int var remainder: Int var result = 0 var n = 0 originalNumber = number while (originalNumber != 0) ( originalNumber /= 10 ++n ) originalNumber = number while (originalNumber != 0) ( remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), n.toDouble()).toInt() originalNumber /= 10 ) if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") )

En este programa, hemos utilizado dos bucles while. El primer ciclo while se utiliza para contar el número de dígitos del número.

Luego, originalNumber se restaura al número dado.

El segundo ciclo while luego verifica si el número es armstrong o no.

Visite esta página para aprender cómo puede mostrar todos los números de Armstrong entre dos intervalos.

Articulos interesantes...