네온 숫자는 숫자의 제곱의 자릿수의 합이 숫자와 같은 숫자입니다. 예를 들어 보겠습니다.
n =9
정사각형 =81
제곱의 자릿수의 합 =8 + 1 =9
따라서 숫자 9는 네온 숫자입니다.
주어진 숫자가 네온 숫자인지 아닌지 확인해야 합니다. 주어진 숫자가 네온 숫자인 경우 Yes를 인쇄하고 그렇지 않으면 No를 인쇄합니다.
알고리즘
- 숫자 n을 초기화합니다.
- 숫자의 제곱을 구하세요.
- 사각형 자릿수의 합 구하기
- 정사각형의 자릿수의 합이 주어진 숫자와 같으면 결과는 참, 그렇지 않으면 거짓입니다.
구현
다음은 위의 알고리즘을 C++로 구현한 것입니다.
#include <bits/stdc++.h>
using namespace std;
int isNeonNumber(int x) {
int square = x * x;
int digitsSum = 0;
while (square != 0) {
digitsSum += (square % 10);
square = square / 10;
}
return digitsSum == x;
}
int main(void) {
string result;
result = isNeonNumber(1) ? "Yes" : "No";
cout << 1 << "->" << result << endl;
result = isNeonNumber(3) ? "Yes" : "No";
cout << 3 << "->" << result << endl;
result = isNeonNumber(9) ? "Yes" : "No";
cout << 9 << "->" << result << endl;
} 출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
1->Yes 3->No 9->Yes