English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 프로그램에서는, Java에서 두 가지 주어진 간격(낮은 값과 높은 값) 사이의 모든 아姆斯트롱 수를 표시하는 방법을 배웁니다.
n차 아姆斯트롱 수는, 다음과 같이 정의됩니다:
abcd... = an + bn + cn + dn + ...
위치3자리수의 아姆斯트롱 수는, 각 자리수의立方수의 합이 수 자체와 같습니다. 예를 들어:
153 = 1*1*1 + 5*5*5 + 3*3*3 // 153이 아姆斯트롱 수입니다.
이 프로그램은정수가 아姆斯트롱 수인지 확인하는 방법의 개념.
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; //자리수 계산 while (originalNumber != 0) { originalNumber /= 10; ++digits; } originalNumber = number; //결과는 그 숫자의 n 차원의 합을 포함합니다 while (originalNumber != 0) { int remainder = originalNumber % 10; result += Math.pow(remainder, digits); originalNumber /= 10; } if (result == number) System.out.print(number + " "); } } }
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
1634 8208 9474 54748 92727 93084
위 프로그램에서는 주어진 간격 높이와 낮이之间存在하는 각 숫자를 확인했습니다.
각각 확인 후, digits와 result이 0으로 되돌아갑니다.