산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바에서 암스트롱 수 판별 및 나열하기: for 루프 활용

암스트롱 수가 무엇인가?

암스트롱 수(나르시시스트 수)는 각 자릿수를 전체 자릿수만큼 제곱한 것의 합이 자기 자신과 같은 수입니다.

수학적으로, 자릿수가 x, y, … z이고 자릿수가 n개인 숫자에 대해:

xy…z = xn + yn + … + zn

암스트롱 수 예시:

0, 1, 4, 5, 9, 153, 371, 407, 8208, …

자바로 암스트롱 수 판별하기

주어진 정수가 암스트롱 수인지 검증하는 간결한 자바 구현입니다. 알고리즘은 각 자릿수를 순회하며 자릿수의 세제곱(세 자리 수에 초점)을 누적하고, 합을 원래 숫자와 비교합니다.

// while 루프로 암스트롱 수 판별
package com.guru99;
public class ArmstrongNumber {
    public static void main(String[] args) {
        int inputArmstrongNumber = 153; // 테스트할 숫자
        int tempNumber, digit, digitCubeSum = 0;
        tempNumber = inputArmstrongNumber;
        while (tempNumber != 0) {
            System.out.println("Current Number is " + tempNumber);
            digit = tempNumber % 10;
            System.out.println("Current Digit is " + digit);
            digitCubeSum += digit * digit * digit;
            System.out.println("Current digitCubeSum is " + digitCubeSum);
            tempNumber /= 10;
        }
        if (digitCubeSum == inputArmstrongNumber)
            System.out.println(inputArmstrongNumber + " is an Armstrong Number");
        else
            System.out.println(inputArmstrongNumber + " is not an Armstrong Number");
    }
}

출력

Current Number is 153
Current Digit is 3
Current digitCubeSum is 27
Current Number is 15
Current Digit is 5
Current digitCubeSum is 152
Current Number is 1
Current Digit is 1
Current digitCubeSum is 153
153 is an Armstrong Number

0부터 999까지 모든 암스트롱 수 나열하기

다음 프로그램은 0~999 범위의 모든 암스트롱 수를 열거하는 방법을 보여줍니다. 범위에는 for 루프를, 각 후보 처리에는 while 루프를 활용합니다.

// 0부터 999까지 암스트롱 수 열거
package com.guru99;
public class ArmstrongNumber {
    public static void main(String[] args) {
        for (int inputArmstrongNumber = 0; inputArmstrongNumber < 1000; inputArmstrongNumber++) {
            int tempNumber = inputArmstrongNumber;
            int digitCubeSum = 0;
            while (tempNumber != 0) {
                int digit = tempNumber % 10;
                digitCubeSum += digit * digit * digit;
                tempNumber /= 10;
            }
            if (digitCubeSum == inputArmstrongNumber)
                System.out.println(inputArmstrongNumber + " is an Armstrong Number");
        }
    }
}

출력

0 is an Armstrong Number
1 is an Armstrong Number
153 is an Armstrong Number
370 is an Armstrong Number
371 is an Armstrong Number
407 is an Armstrong Number

java

  1. Java Hello World: 첫 프로그램 작성하기
  2. Java 향상된 for 루프(for-each) 완벽 가이드: 문법, 예제, 비교
  3. Java 생성자 오버로딩: 실전 코드 예제로 이해하기
  4. 자바에서 소수 판별하기: 완벽 가이드
  5. 자바로 1부터 100까지 소수 나열하기: 단계별 가이드
  6. 자바에서 피보나치 수열 생성하기: for, while, 재귀 예제
  7. 자바에서 재귀를 이용해 문자열 뒤집기: 단계별 가이드
  8. 자바 팰린드롬 수 판별기: while/for 루프 알고리즘
  9. 자바 삽입 정렬 알고리즘: 명확한 예제와 단계별 가이드
  10. 자바 선택 정렬: 단계별 예제와 전체 코드