Computer >> Máy Tính >  >> Lập trình >> C ++

Loại bỏ các chữ số lặp lại trong một số nhất định bằng C ++

Trong bài viết này, chúng ta được cung cấp một số n và chúng ta cần loại bỏ các chữ số lặp lại trong một số nhất định.

Input: x = 12224
Output: 124

Input: x = 124422
Output: 1242

Input: x = 11332
Output: 132

Trong bài toán đã cho, chúng ta sẽ xem xét tất cả các chữ số và loại bỏ các chữ số lặp lại.

Phương pháp tiếp cận để tìm ra giải pháp

Trong cách tiếp cận đã cho, chúng ta sẽ xem xét tất cả các chữ số của n từ phải sang trái bây giờ. Chúng ta đi qua các chữ số của n bằng cách lấy mod của n với 10 rồi chia n với 10. Bây giờ chữ số hiện tại của chúng ta là n mod 10. Chúng ta kiểm tra nó với chữ số trước đó. Nếu các chữ số bằng nhau, chúng ta chuyển qua n ngay bây giờ. Nếu chúng không giống nhau, chúng tôi thêm chữ số này vào số mới, thay đổi chữ số trước đó thành chữ số hiện tại và tiếp tục vòng lặp.

Ví dụ

#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;
}

Đầu ra

123232

Giải thích về đoạn mã trên

Trong cách tiếp cận ở trên, chúng ta chỉ đơn giản là duyệt qua các chữ số của n bây giờ khi chữ số trước đó và chữ số hiện tại của chúng ta không khớp, chúng ta thêm chữ số đó vào số mới và khi chữ số của chúng ta được thêm vào, chúng ta cũng tăng po, đó là đang được sử dụng cho các vị trí của các chữ số của chúng ta bây giờ nếu các chữ số hiện tại và trước đó của chúng ta khớp nhau-chúng ta không chạy khối này và tiếp tục vòng lặp cho đến khi n của chúng ta bằng 0.

Kết luận

Trong bài viết này, chúng tôi giải quyết một vấn đề để loại bỏ các chữ số lặp lại trong một số nhất định. Chúng tôi cũng đã học chương trình C ++ cho vấn đề này và cách tiếp cận hoàn chỉnh (Bình thường) mà chúng tôi đã giải quyết vấn đề này. Chúng ta có thể viết cùng một chương trình bằng các ngôn ngữ khác như C, java, python và các ngôn ngữ khác. Chúng tôi hy vọng bạn thấy bài viết này hữu ích.