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

C++를 사용하여 주어진 숫자에서 반복되는 숫자 제거

<시간/>

이 기사에서는 숫자 n이 주어지며 주어진 숫자에서 반복되는 숫자를 제거해야 합니다.

Input: x = 12224
Output: 124

Input: x = 124422
Output: 1242

Input: x = 11332
Output: 132

주어진 문제에서 모든 숫자를 살펴보고 반복되는 숫자를 제거합니다.

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

주어진 접근 방식에서 우리는 이제 오른쪽에서 왼쪽으로 n의 모든 숫자를 살펴볼 것입니다. n의 mod를 10으로 나눈 다음 n을 10으로 나누어 n의 자릿수를 살펴봅니다. 이제 현재 자릿수는 n mod 10입니다. 이전 자릿수로 확인합니다. 숫자가 같으면 지금 n을 탐색합니다. 비슷하지 않으면 이 숫자를 새 숫자에 추가하고 이전 숫자를 현재 숫자로 변경한 다음 루프를 계속 진행합니다.

#include <bits/stdc++.h>

#define MOD 1000000007

using namespace std;

int main() {
   int n = 1222333232; // given n
   int new_n = 0; // new number
   int po = 1; // will b multiple of ten for new digits
   int prev = -1; // previous digit
   int curr; // current digit
   while(n) {
      curr = n % 10;
      if(prev != curr) { // if a digit is not repeated then we go in this block
         new_n = new_n + (curr * po); // we add a new digit to new_n
         po *= 10;
         prev = curr;
      }
      n /= 10;
   }
   cout << new_n << "\n";
   return 0;
}

출력

123232

위 코드 설명

위의 접근 방식에서 우리는 이전 숫자와 현재 숫자가 일치하지 않을 때 n의 숫자를 순회하고 있습니다. 그런 숫자를 새 숫자에 추가하고 숫자가 추가되면 po도 증가합니다. 현재 및 이전 숫자가 일치하는 경우 현재 숫자의 위치에 사용됩니다. 이 블록을 실행하지 않고 n이 0이 될 때까지 루프를 계속합니다.

결론

이 기사에서는 주어진 숫자에서 반복되는 숫자를 제거하는 문제를 해결합니다. 우리는 또한 이 문제에 대한 C++ 프로그램과 이 문제를 해결한 완전한 접근 방식( Normal)을 배웠습니다. C, Java, python 및 기타 언어와 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다. 이 기사가 도움이 되기를 바랍니다.