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

Tutoriales básicos de Java

Control de flujo de Java

Java Arreglo

Java Orientado a Objetos (I)

Java Orientado a Objetos (II)

Java Orientado a Objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Cola (Queue)

Java Colección Map (Map)

Java Conjunto (Set)

Java Entrada Salida (I/O)

Java Reader/Writer

Temas de Java

Programa Java que verifica números Armstrong

Java 实例大全

En este programa, aprenderá a verificar si un número dado es un número Armstrong. Aprenderá a hacerlo usando bucles for y while en Java.

Un entero positivo se llama Armstrong orden, n si

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

Para3dígitos, cada número al cubo suma es igual al número en sí mismo. Por ejemplo:

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

Ejemplo1:Verificar si el número Armstrong tiene3dígitos

public class Armstrong {
    public static void main(String[] args) {
        int number = 371, originalNumber, remainder, result = 0;
        originalNumber = number;
        while (originalNumber != 0)
        {
            remainder = originalNumber % 10;
            result += Math.pow(remainder, 3);
            originalNumber /= 10;
        }
        if (result == number)
            System.out.println(number + "Es un número Armstrong.");
        else
            System.out.println(number + "No es un número Armstrong.");
    }
}

运行该程序时,输出为:

371 es un número Armstrong.
  • Primero, el valor del número (number) se almacena en otra variable entera originalNumber. Esto es porque, necesitamos comparar el número final con el número original en el final.

  • Luego, use un ciclo while para recorrer originalNumber, hasta que sea 0.

    • En cada iteración, el último dígito de num se almacena en remainder.

    • Luego, use la función Math.pow() para sumar remainder3(数字位数)y sume a result.

    • Luego, divida10Luego, elimine el último dígito de originalNumber.

  • Finalmente, compare result y number. Si son iguales, es un número Armstrong. Si no, no lo es.

Ejemplo2:Verificar si el número Armstrong tiene n dígitos

public class Armstrong {
    public static void main(String[] args) {
        int number = 1634, originalNumber, remainder, result = 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 + " 是一个阿姆斯特朗数.");
        else
            System.out.println(number + " 不是一个阿姆斯特朗数.");
    }
}

运行该程序时,输出为:

1634 是一个阿姆斯特朗数。

在此程序中,我们没有使用while循环,而是使用了两个for循环。

第一个for循环用于计算数字中的位数。它是以下形式的压缩形式:

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

然后,第二个for循环计算result,其中在每次迭代中,余数由数字n求幂。

访问此页面以了解如何显示两个间隔之间的所有阿姆斯壮数字

Java 实例大全