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

C++에서 숫자의 합이 N인 숫자 X 찾기

<시간/>

이 튜토리얼에서는 숫자를 포함하는 일부가 주어진 숫자 N과 같은 숫자를 찾을 것입니다.

아이디어는 간단합니다. 주어진 숫자의 왼쪽과 오른쪽 100개의 숫자를 확인하겠습니다. N ≤ 1000000000으로 경계를 나타내지 않으며 합계는 100을 초과하지 않습니다.

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

  • 번호를 초기화합니다.

  • 100번 반복하는 루프를 작성하십시오.

    • n - i 및 n + i 값을 가져옵니다.

    • 숫자의 합을 찾아 더하세요.

    • N과 같은 사람이 있으면 인쇄하십시오.

예시

코드를 봅시다.

#include <bits/stdc++.h>
using namespace std;
int digitsSum(int n) {
   int sum = 0;
   while (n) {
      sum += n % 10;
      n /= 10;
   }
   return sum;
}
void findX(long int n) {
   bool is_found = false;
   for (int i = 0; i <= 100; i++) {
      long int valueOnLeft = abs(n - i) + digitsSum(abs(n - i));
      long int valueOnRight = n + i + digitsSum(n + i);
      if (valueOnLeft == n) {
         is_found = true;
         cout << abs(n - i) << " ";
      }
      if (valueOnRight == n) {
         is_found = true;
         cout << (n + i) << " ";
      }
   }
   if (!is_found) {
      cout << "No numbers found";
   }
   cout << endl;
}
int main() {
   int n = 89;
   findX(n);
   return 0;
}

출력

위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

76

결론

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