কম্পিউটার

সর্বাধিক পার্থক্য আপনি C++ এ একটি পূর্ণসংখ্যা পরিবর্তন থেকে পেতে পারেন


ধরুন আমাদের একটি পূর্ণসংখ্যা আছে। আমরা নিচের ধাপগুলো ঠিক দুইবার প্রয়োগ করব, ধাপগুলো −

এর মত
  • 0 থেকে 9 রেঞ্জের মধ্যে একটি সংখ্যা x বেছে নিন।

  • 0 থেকে 9 রেঞ্জের মধ্যেও আরেকটি ডিজিট y বেছে নিন। y সংখ্যা x এর সমান হতে পারে।

  • y দ্বারা সংখ্যার দশমিক প্রতিনিধিত্বে x এর সমস্ত উপস্থিতি প্রতিস্থাপন করুন। নতুন পূর্ণসংখ্যার কোন অগ্রণী শূন্য থাকতে পারে না, এছাড়াও নতুন পূর্ণসংখ্যার মান 0 হতে পারে না।

এখন বিবেচনা করুন a এবং b কে যথাক্রমে প্রথম এবং দ্বিতীয়বার সংখ্যায় অপারেশন প্রয়োগ করার ফলাফল। তারপর a এবং b এর মধ্যে সর্বাধিক পার্থক্য খুঁজুন।

সুতরাং, যদি ইনপুটটি 555 এর মত হয়, তাহলে আউটপুটটি হবে 888 প্রথমবার x =5 এবং y =9 হিসাবে এবং নতুন পূর্ণসংখ্যাটিকে a তে সংরক্ষণ করুন। দ্বিতীয়বার x =5 এবং y =1 বাছাই করুন এবং b এ নতুন পূর্ণসংখ্যা সংরক্ষণ করুন।

তাই এখন আমাদের আছে a =999 এবং b =111 এবং সর্বাধিক পার্থক্য হল =999 - 111 =888।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি ফাংশন সংজ্ঞায়িত করুন getMax(), এটি x,

    লাগবে
  • s :=x কে স্ট্রিং এ রূপান্তর করুন

  • a :='9'

  • i :=0

  • যখন (i করুন

    • (i 1 দ্বারা বাড়ান)

  • যদি i

    • a :=s[i]

  • আরম্ভ করার জন্য i :=0, যখন i

    • যদি s[i] a এর মত হয়, তাহলে −

      • s[i] :='9'

  • নম্বর হিসাবে s ফেরত দিন

  • একটি ফাংশন সংজ্ঞায়িত করুন getMin(), এটি x,

    লাগবে
  • s :=x কে স্ট্রিং এ রূপান্তর করুন

  • যদি s[0] '1' এর সমান না হয়, তাহলে −

    • a :=s[0]

    • আরম্ভ করার জন্য i :=0, যখন i

      • যদি s[i] a এর মত হয়, তাহলে −

        • s[i] :='1'

  • অন্যথায়

    • যদি s এর আকার 1 এর সমান হয়, তাহলে −

      • রিটার্ন 1

    • i :=0

    • a :='1'

    • যখন (i করুন

      • (i 1 দ্বারা বাড়ান)

    • যদি i

      • a :=s[i]

    • আরম্ভ করার জন্য i :=1, যখন i

      • যদি s[i] a এর মত হয়, তাহলে −

        • s[i] :='0'

  • নম্বর হিসাবে s ফেরত দিন

  • প্রধান পদ্ধতি থেকে নিম্নলিখিতগুলি করুন -

  • a :=getMax(num)

  • b :=getMin(num)

  • ফেরত |a - b|

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int getMax(int x){
      string s = to_string(x);
      char a = '9', b;
      int i = 0;
      while (i < s.size() && s[i] == '9')
         i++;
      if (i < s.size())
         a = s[i];
      for (int i = 0; i < s.size(); i++) {
         if (s[i] == a) {
            s[i] = '9';
         }
      }
      return stoi(s);
   }
   int getMin(int x){
      string s = to_string(x);
      char a;
      if (s[0] != '1') {
         a = s[0];
         for (int i = 0; i < s.size(); i++) {
            if (s[i] == a) {
               s[i] = '1';
            }
         }
      }
      else {
         if (s.size() == 1) {
            return 1;
         }
         int i = 0;
         a = '1';
         while (i < s.size() && s[i] <= '1')
            i++;
         if (i < s.size())
            a = s[i];
         for (int i = 1; i < s.size(); i++) {
            if (s[i] == a) {
               s[i] = '0';
            }
         }
      }
      return stoi(s);
   }
   int maxDiff(int num) {
      int a = getMax(num);
      int b = getMin(num);
      return abs(a - b);
   }
};
main(){
   Solution ob;
   cout << (ob.maxDiff(666));
}

ইনপুট

666

আউটপুট

888

  1. Verizon 5G:কখন এবং কোথায় আপনি এটি পেতে পারেন

  2. Rgers 5G:কখন এবং কোথায় আপনি এটি পেতে পারেন

  3. আপনি কি iPhone বা iPad এর জন্য Microsoft IE পেতে পারেন?

  4. কিভাবে আপনি Windows 10 এ সাহায্য পেতে পারেন