C++ 로 Armstrong 숫자 확인하기

C++Beginner
지금 연습하기

소개

이 랩에서는 C++ 에서 숫자가 암스트롱 수 (Armstrong number) 인지 확인하는 방법을 배웁니다. 암스트롱 수는 각 자릿수를 자릿수만큼 거듭제곱한 값의 합과 동일한 숫자입니다. 이는 C++ 코딩 기술을 연습하는 데 도움이 되는 간단한 프로그램입니다.

필요한 라이브러리 포함

다음 명령을 사용하여 ~/project 디렉토리에 main.cpp라는 새 파일을 생성합니다.

touch ~/project/main.cpp

이 단계에서는 필요한 라이브러리를 포함합니다.

#include <iostream>
#include <cmath>
using namespace std;

iostream 라이브러리는 입/출력 스트림 (input/output streams) 작업을 위해 사용되며, cmath 라이브러리는 수학 연산을 위한 기능을 추가합니다.

main() 함수 정의

이 단계에서는 main() 함수를 정의합니다.

int main() {
    // code here
    return 0;
}

main 함수는 프로그램의 진입점입니다. 실행될 모든 코드는 이 함수 내부에 작성되어야 합니다.

변수 선언 및 초기화

이 단계에서는 프로그램에 필요한 변수를 선언하고 초기화합니다.

int num, originalNumber, remainder, result = 0, n = 0;
  • num은 입력 숫자입니다.
  • originalNumber는 수정되지 않은 입력 숫자입니다.
  • remainder는 입력 숫자의 마지막 자릿수를 저장합니다.
  • result는 Armstrong 계산의 결과를 저장합니다.
  • n은 입력 숫자의 자릿수를 결정하는 데 사용됩니다.

사용자 입력 받기

이 단계에서는 사용자로부터 입력 값을 받습니다.

cout << "Enter a positive integer: ";
cin >> num;

이 코드 조각은 사용자로부터 입력을 받아 num 변수에 저장합니다.

입력 숫자의 자릿수 결정

이 단계에서는 입력 숫자의 자릿수를 결정합니다.

originalNumber = num;

// count number of digits
while (originalNumber != 0) {
    originalNumber /= 10;
    ++n;
}

이 코드 블록은 입력 숫자의 자릿수를 계산합니다. 자릿수는 변수 n에 저장됩니다.

결과 계산

이 단계에서는 Armstrong 계산의 결과를 계산합니다.

originalNumber = num;

while (originalNumber != 0) {
    remainder = originalNumber % 10;
    result += pow(remainder, n);
    originalNumber /= 10;
}

이 코드 블록은 입력 숫자의 각 자릿수를 반복하며 Armstrong 숫자에 대한 계산을 수행합니다. 결과는 result 변수에 저장됩니다.

결과 확인

이 단계에서는 입력 숫자가 Armstrong 숫자인지 확인합니다.

if (result == num)
    cout << num << " is an Armstrong number";
else
    cout << num << " is not an Armstrong number";

이 코드 블록은 프로그램의 결과를 출력합니다. 결과가 입력 숫자와 같으면 입력 숫자는 Armstrong 숫자입니다. 그렇지 않으면 Armstrong 숫자가 아닙니다.

터미널에서 코드를 실행하려면:

g++ main.cpp -o main && ./main

요약

이 랩에서는 숫자가 Armstrong 숫자인지 확인하는 방법을 배웠습니다. 이 작업을 위해 필요한 계산을 수행하기 위해 cmath 라이브러리를 사용했습니다. 또한 숫자의 자릿수를 반복하고 계산하는 방법도 배웠습니다. 이 기본 프로그램을 통해 C++ 코딩 기술을 더욱 발전시킬 수 있습니다.