English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste programa, você aprenderá a exibir todos os números Armstrong entre dois intervalos dados (baixo e alto) em Java.
Um número inteiro positivo chamado número Armstrong de ordem n, se
abcd... = an + bn + cn + dn + ...
Para3dígitos, a soma das potências ao cubo de cada dígito é igual ao número em si. Por exemplo:
153 = 1*1*1 + 5*5*5 + 3*3*3 // 153é um número Armstrong.
Este programa é baseado emComo verificar se um número inteiro é um número Armstrongconceito.
public class Armstrong { public static void main(String[] args) { int low = 999, high = 99999; for(int number = low + 1; number < high; ++number) { int digits = 0; int result = 0; int originalNumber = number; //Cálculo de dígitos while (originalNumber != 0) { originalNumber /= 10; ++digits; } originalNumber = number; //O resultado contém a soma das potências n do seus dígitos while (originalNumber != 0) { int remainder = originalNumber % 10; result += Math.pow(remainder, digits); originalNumber /= 10; } if (result == number) System.out.print(number + " "); } } }
Quando o programa é executado, a saída é:
1634 8208 9474 54748 92727 93084
No programa acima, cada número entre o intervalo alto e baixo foi verificado.
Após cada verificação, os valores de digits e result são restaurados para 0.