이 튜토리얼에서는 주어진 숫자가 카프레카르 숫자인지 알아내는 프로그램을 작성할 것입니다. 여부.
번호를 가져 가라. 그 수의 제곱을 구하십시오. 숫자를 두 부분으로 나눕니다. 두 부분의 합이 원래 숫자와 같으면 그 숫자를 카프레카르 숫자라고 합니다. .
문제를 해결하는 단계를 살펴보겠습니다.
- n을 초기화합니다.
- n의 제곱을 구하세요.
- n의 제곱에서 자릿수를 찾아 변수에 저장합니다.
- n의 제곱을 숫자가 셀 때까지 10, 100, 1000 등으로 나눕니다.
- 해당 부분의 합이 n인지 여부를 확인합니다.
- 반환 참 같으면 else False .
예시
코드를 봅시다.
#include<bits/stdc++.h>
using namespace std;
bool isKaprekarNumber(int n) {
if (n == 1) {
return true;
}
int nSquare = n * n, digitsCount = 0;
while (nSquare) {
digitsCount++;
nSquare /= 10;
}
nSquare = n * n;
for (int i = 1; i < digitsCount; i++) {
int parts = pow(10, i);
if (parts == n) {
continue;
}
int sum = nSquare / parts + nSquare % parts;
if (sum == n) {
return true;
}
}
return false;
}
int main() {
int n = 25;
string result = isKaprekarNumber(n) ? "True" : "False";
cout << result << endl;
return 0;
} 출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
False
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.