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

C++의 카프레카 수

<시간/>

이 튜토리얼에서는 주어진 숫자가 카프레카르 숫자인지 알아내는 프로그램을 작성할 것입니다. 여부.

번호를 가져 가라. 그 수의 제곱을 구하십시오. 숫자를 두 부분으로 나눕니다. 두 부분의 합이 원래 숫자와 같으면 그 숫자를 카프레카르 숫자라고 합니다. .

문제를 해결하는 단계를 살펴보겠습니다.

  • 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

결론

튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.