English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manual Básico de Java

Controle de fluxo Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Fila (Queue)

Java Mapa (Map)

Java Conjunto (Set)

Java Entrada/Saída (I/O)

Reader Java/Writer

Outros tópicos do Java

Programa Java para verificar números Armstrong

Java Examples Comprehensive

Neste programa, você aprenderá a verificar se um número dado é um número Armstrong. Você aprenderá a fazer isso usando loops for e while em Java.

Um inteiro positivo é chamado de Armstrong order, n se

abcd... = an + bn + cn + dn + ...

Para3dígitos, a soma das potências ao cubo de cada dígito é igual ao número. Por exemplo:

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

Exemplo1verificar se um Armstrong é de3dígitos

public class Armstrong {
    public static void main(String[] args) {
        int número = 371, originalNumber, resto, resultado = 0;
        originalNumber = number;
        while (originalNumber != 0)
        {
            remainder = originalNumber % 10;
            result += Math.pow(resto, 3);
            originalNumber /= 10;
        }
        if (result == number)
            System.out.println(number + "É um número Armstrong.");
        else
            System.out.println(number + "Não é um número Armstrong.");
    }
}

Quando você executar este programa, a saída será:

371 é um número Armstrong.
  • Primeiro, o valor do número (number) é armazenado em uma variável inteira originalNumber. Isso porque precisamos comparar o número final com o número original no final.

  • Em seguida, usa-se um loop while para percorrer o originalNumber, até que ele seja igual a 0.

    • Em cada iteração, o último dígito do número é armazenado no resto.

    • Em seguida, usa-se a função Math.pow() para adicionar ao resto3(dígitos do número)e adiciona ao resultado.

    • Depois, divide-se por10Em seguida, remove-se o último dígito do originalNumber.

  • Por fim, compara-se o resultado com o número. Se forem iguais, é um número Armstrong. Se não forem, não é.

Exemplo2verificar se um Armstrong é de n dígitos

public class Armstrong {
    public static void main(String[] args) {
        int número = 1634, originalNumber, resto, resultado = 0, n = 0;
        originalNumber = number;
        for (; originalNumber != 0; originalNumber /= 10, ++n);
        originalNumber = number;
        for (; originalNumber != 0; originalNumber /= 10)
        {
            remainder = originalNumber % 10;
            result += Math.pow(remainder, n);
        }
        if (result == number)
            System.out.println(number + "É um número Armstrong.");
        else
            System.out.println(number + "Não é um número Armstrong.");
    }
}

Quando você executar este programa, a saída será:

1634 é um número Armstrong.

Neste programa, não usamos loop while, mas sim dois loops for.

O primeiro loop for é usado para calcular o número de dígitos no número. É uma forma comprimida da seguinte:

for (; originalNumber != 0; originalNumber /= 10) {
     n++;
}

Então, o segundo loop for calcula o result, onde no cada iteração, o resto é elevado ao poder do número n.

Acesse esta página para saber comoExibir todos os números Armstrong entre dois intervalos.

Java Examples Comprehensive