소개
이 랩에서는 C++ 에서 숫자가 암스트롱 수 (Armstrong number) 인지 확인하는 방법을 배웁니다. 암스트롱 수는 각 자릿수를 자릿수만큼 거듭제곱한 값의 합과 동일한 숫자입니다. 이는 C++ 코딩 기술을 연습하는 데 도움이 되는 간단한 프로그램입니다.
이 랩에서는 C++ 에서 숫자가 암스트롱 수 (Armstrong number) 인지 확인하는 방법을 배웁니다. 암스트롱 수는 각 자릿수를 자릿수만큼 거듭제곱한 값의 합과 동일한 숫자입니다. 이는 C++ 코딩 기술을 연습하는 데 도움이 되는 간단한 프로그램입니다.
다음 명령을 사용하여 ~/project 디렉토리에 main.cpp라는 새 파일을 생성합니다.
touch ~/project/main.cpp
이 단계에서는 필요한 라이브러리를 포함합니다.
#include <iostream>
#include <cmath>
using namespace std;
iostream 라이브러리는 입/출력 스트림 (input/output streams) 작업을 위해 사용되며, cmath 라이브러리는 수학 연산을 위한 기능을 추가합니다.
이 단계에서는 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++ 코딩 기술을 더욱 발전시킬 수 있습니다.