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

C++를 사용하여 자릿수의 합이 짝수인 숫자 찾기

<시간/>

완전히 2로 나눌 수 있는 정수는 짝수입니다. 따라서 이 기사에서는 숫자 n이 주어지고 짝수 자릿수로 n번째 숫자를 찾아야 합니다. 자릿수의 합이 짝수인 처음 5개의 숫자는 2, 4, 6, 8 및 11입니다. 예:-

Input : n = 5
Output : 11
Explanation : First 5 numbers with even sum of digits are 2, 4, 6, 8, 11 i.e 5th
number is 11.

Input : 12
Output : 24

해결책을 찾기 위한 접근 방식

이제 주어진 문제에 대한 해결책을 찾기 위한 두 가지 다른 절차에 대해 알게 될 것입니다.

순진한 접근

n번째 숫자를 찾는 간단한 솔루션은 먼저 1부터 시작하는 숫자를 탐색하고 각 숫자의 숫자 합이 짝수인지 확인하는 것입니다. 그렇다면 카운터 값이 n이 될 때까지 카운터를 1씩 증가시키고 마지막으로 n번째 숫자가 답이 될 것입니다.

효율적인 접근

n번째 숫자를 찾는 효율적인 방법은 먼저 시작 숫자를 짝수로 확인하고 패턴을 검색하여 답을 찾는 것입니다. 합이 짝수인 처음 20개의 숫자는 2, 4, 6, 8, 11, 13, 15, 17, 19, 20, 22, 24, 26, 28, 31, 33, 35, 37, 39, 40입니다. 이 처음 20개의 숫자에서 n의 마지막 숫자가 0에서 4 사이이면 n번째 숫자는 2*n이고 n번째 숫자가 5에서 9 사이이면 n번째 숫자는 ( 2* n + 1).

예시

#include <bits/stdc++.h>
using namespace std;
int main () {
   long long int n = 13;
   long long int result;
   // finding the last digit of n
   int last_digit = n % 10;
   // checking if last digit is between 0 and 4
   if (last_digit >= 0 && last_digit <= 4)
      result = 2 * n;
      // checking if last digit is between 5 and 9
   else
      result = (2 * n) + 1;
   cout << "nth Number with even sum of digits: " << result;
   return 0;
}

출력

nth Number with even sum of digits: 26

위 코드 설명

  • 마지막 숫자를 찾아 0과 4 사이에 있는지 확인합니다. 그렇다면 결과 변수에 2*n을 답으로 저장합니다.
  • 그렇지 않으면 마지막 숫자가 5와 9 사이에 있는지 확인하십시오. 그렇다면 결과 변수에 2*n + 1을 답으로 저장합니다.
  • 결과 변수에 저장된 자릿수의 짝수 합으로 n번째 숫자를 출력합니다.

결론

이 기사에서 우리는 이 기사에서 이해하는 두 가지 방법으로 이 문제를 해결할 수 있는 짝수 자릿수 합으로 n번째 숫자를 찾는 것에 대해 논의했습니다. 우리는 또한 동일한 문제를 해결하는 프로그램을 만들기 위해 C++ 코드를 작성합니다. 이 코드는 C, Java, python 등과 같은 다른 언어로 작성할 수 있습니다. 이 문서가 도움이 되기를 바랍니다.