Programa Kotlin para verificar o número Armstrong

Neste programa, você aprenderá a verificar se um determinado número é um número armstrong ou não. Você aprenderá a fazer isso usando um loop while em Kotlin.

Um número inteiro positivo é chamado de número Armstrong de ordem n se

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

No caso de um número Armstrong de 3 dígitos, a soma dos cubos de cada dígito é igual ao próprio número. Por exemplo:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 é um número de Armstrong. 

Exemplo 1: Verifique o número Armstrong para um 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.") ) 

Quando você executa o programa, a saída será:

 371 é um número Armstrong.
  • Primeiro, o valor de determinado número (número) é armazenado em outra variável inteira, originalNumber. Isso ocorre porque precisamos comparar os valores do número final e do número original no final.
  • Em seguida, um loop while é usado para percorrer originalNumber até que seja igual a 0.
    • Em cada iteração, o último dígito de num é armazenado no resto.
    • Então, o resto é alimentado por 3 (número de dígitos) usando a Math.pow()função e adicionado ao resultado.
      Aqui, o resto é convertido para Doubleporque powsó aceita Doubleparâmetros e seu valor é novamente convertido paraInt
    • Em seguida, o último dígito é removido do número original após a divisão por 10.
  • Finalmente, o resultado e o número são comparados. Se igual, é um número armstrong. Se não, não é.

Aqui está o código Java equivalente: Programa Java para verificar o número Armstrong

Exemplo 2: verificar o número 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.") )

Neste programa, usamos dois loops while. O primeiro loop while é usado para contar o número de dígitos no número.

Então, originalNumber é restaurado para o número fornecido.

O segundo loop while verifica se o número é armstrong ou não.

Visite esta página para saber como você pode exibir todos os números da Armstrong entre dois intervalos.

Artigos interessantes...