Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

암스트롱 번호를 확인하는 C++ 프로그램

<시간/>

암스트롱 수는 총 자릿수의 거듭제곱으로 거듭제곱한 자릿수의 합이 그 수와 같은 수입니다. 암스트롱 수의 몇 가지 예는 다음과 같습니다.

3 = 3^1
153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1 = 371
407 = 4^3 + 0^3 + 7^3 = 64 +0 + 343 = 407

번호가 암스트롱 번호인지 확인하는 프로그램은 다음과 같습니다.

예시

#include <iostream>
#include <cmath<
using namespace std;
int main() {
   int num = 153, digitSum, temp, remainderNum, digitNum ;
   temp = num;
   digitNum = 0;
   while (temp != 0) {
      digitNum++;
      temp = temp/10;
   }
   temp = num;
   digitSum = 0;
   while (temp != 0) {
      remainderNum = temp%10;
      digitSum = digitSum + pow(remainderNum, digitNum);
      temp = temp/10;
   }
   if (num == digitSum)
   cout<<num<<" is an Armstrong number";
   else
   cout<<num<<" is not an Armstrong number";
   return 0;
}

출력

153 is an Armstrong number

위의 프로그램에서 주어진 숫자가 암스트롱 숫자인지 아닌지를 판별합니다. 이것은 여러 단계를 사용하여 수행됩니다. 먼저 숫자의 자릿수를 찾습니다. 각 자릿수에 대해 digitNum에 1을 추가하면 됩니다.

이것은 다음 코드 스니펫에 의해 설명됩니다 -

temp = num;
digitNum = 0;
while (temp != 0) {
   digitNum++;
   temp = temp/10;
}

자릿수를 알면 digitSum은 각 자릿수를 digitNum의 거듭제곱, 즉 자릿수에 더하여 계산됩니다. 이는 다음 코드 스니펫에서 확인할 수 있습니다.

temp = num;
digitSum = 0;
while (temp != 0) {
   remainderNum = temp%10;
   digitSum = digitSum + pow(remainderNum, digitNum);
   temp = temp/10;
}

숫자가 digitSum과 같으면 해당 숫자는 암스트롱 숫자이며 인쇄됩니다. 그렇지 않은 경우 암스트롱 번호가 아닙니다. 이것은 아래 코드 스니펫에서 볼 수 있습니다.

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