English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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.
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求幂。
访问此页面以了解如何显示两个间隔之间的所有阿姆斯壮数字。