কম্পিউটার

C++ এ ক্রমাগত স্বয়ংক্রিয় সংখ্যার সংখ্যা সর্বাধিক করুন


প্রদত্ত কাজটি হল একটি প্রদত্ত অ্যারেতে এন সংখ্যক উপাদান সহ ক্রমাগত স্বয়ংক্রিয় উপাদানের সংখ্যা সর্বাধিক করা।

একটি স্বয়ংক্রিয় সংখ্যা হল এমন একটি সংখ্যা যার বর্গক্ষেত্রটি সংখ্যার মতো একই সংখ্যা দিয়ে শেষ হয়। উদাহরণস্বরূপ 5 হল একটি স্বয়ংক্রিয় সংখ্যা হিসাবে 5*5 =25 এবং 25 এর শেষে 5।

আসুন এখন বুঝতে পারি −

একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবে

ইনপুট − arr[]={5,3,625,6,8,1}

আউটপুট − 2

ব্যাখ্যা − উপরের অ্যারেতে উপস্থিত স্বয়ংক্রিয় সংখ্যাগুলি হল 5, 625, 6 এবং 1 তবে সর্বাধিক অবিচ্ছিন্ন স্বয়ংক্রিয় সংখ্যাগুলি হল {625,6} যা আউটপুট =2 করে।

ইনপুট − arr[]={33, 25, 1, 76, 4}

আউটপুট − 3

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • main() ফাংশনে int টাইপের একটি ভেরিয়েবল 'n' তৈরি করুন এবং এতে সংরক্ষণ করুন, প্রদত্ত অ্যারের আকার।

  • ফাংশনে MaxAutomorphic ইনিশিয়ালাইজ করে CurrentMax=0 এবং Maximum=0 উভয় প্রকার int যথাক্রমে বর্তমান সর্বোচ্চ মান এবং সর্বোচ্চ মান সংরক্ষণ করতে।

  • i=0 থেকে i

  • IsAutomophic() ফাংশনে একটি ভেরিয়েবল sqr=n*n টাইপের int-এর সূচনা করুন যাতে n সংখ্যার বর্গ সঞ্চয় হয়

  • কন্ডিশন n>0 সহ while লুপ ব্যবহার করে লুপ করুন এবং সংখ্যাটি স্বয়ংক্রিয় কিনা তা পরীক্ষা করতে n এবং sqr-এর শেষ সংখ্যাগুলির তুলনা করুন৷

  • MaxAutomorphic() ফাংশনে ফিরে যান, যদি সংখ্যা স্বয়ংক্রিয় না হয় তাহলে CurrentMax=0

    সেট করুন
  • অন্যথায়, যদি সংখ্যাটি স্বয়ংক্রিয় বলে প্রমাণিত হয় তবে কারেন্টম্যাক্সে 1 যোগ করুন এবং কারেন্টম্যাক্স এবং সর্বাধিকের মধ্যে সর্বাধিক সংখ্যাটিকে সর্বাধিক পরিবর্তনশীলে সংরক্ষণ করুন৷

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
//Function to check if number is automorphic
bool IsAutomorphic(int n){
   //Storing the square of n
   int sqr = n * n;
   //Comparing the digits
   while (n > 0){
      /*Return false if any digit of n doesn't
      match with its square's last digits*/
      if (n % 10 != sqr % 10)
         return false;
      n /= 10;
      sqr /= 10;
   }
   return true;
}
int MaxAutomorphic(int arr[], int size){
   int CurrentMax = 0, Maximum = 0;
   for (int i = 0; i < size; i++){
      //Checking if the element is non-automorphic
      if (IsAutomorphic(arr[i]) == false)
         CurrentMax = 0;
         //Updating CurrentMax and Maximum if number is automorphic
      else{
         CurrentMax++;
         Maximum = max(CurrentMax, Maximum);
      }
   }
   return Maximum;
}
//Main function
int main(){
   int arr[] = { 33, 25, 1, 76, 4 };
   int size = sizeof(arr) / sizeof(arr[0]);
   cout << MaxAutomorphic(arr, size);
   return 0;
}

আউটপুট

আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব −

3

  1. C++ এ মিতব্যয়ী নম্বর

  2. C++ পেন্টাটোপ নম্বর

  3. সি++ এ ডুডেনি নম্বর

  4. C++ প্রোগ্রাম দশমিক সংখ্যাকে অক্টালে রূপান্তর করতে