প্রদত্ত কাজটি হল একটি প্রদত্ত অ্যারেতে এন সংখ্যক উপাদান সহ ক্রমাগত স্বয়ংক্রিয় উপাদানের সংখ্যা সর্বাধিক করা।
একটি স্বয়ংক্রিয় সংখ্যা হল এমন একটি সংখ্যা যার বর্গক্ষেত্রটি সংখ্যার মতো একই সংখ্যা দিয়ে শেষ হয়। উদাহরণস্বরূপ 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