একটি ধনাত্মক পূর্ণসংখ্যার অ্যারে Arr[] দেওয়া আছে যার আকার N। লক্ষ্য হল অ্যারের সব উপাদানের গুণফলে কতগুলো ট্রেইলিং জিরো (পূঁছতে শূন্য) থাকে তা বের করা।
এটি বের করার জন্য প্রতিটি সংখ্যার ২ এবং ৫ হিসেবে ফ্যাক্টর গণনা করা হয়। কারণ ২ × ৫ = ১০ যা একটি ট্রেইলিং জিরো তৈরি করে। শেষে ২ এবং ৫-এর ফ্যাক্টর সংখ্যার যেটি কম হবে, সেটিই ট্রেইলিং জিরোর সংখ্যা হবে। যেমন ৪টি ২ এবং ৬টি ৫ থাকলে ৪টি ট্রেইলিং জিরো হবে।
ইনপুট: Arr[] = { 2, 5, 10, 15, 20, 25, 100 }
আউটপুট: ট্রেইলিং জিরোর সংখ্যা: ৬
ব্যাখ্যা: প্রতিটি উপাদানের ২ ও ৫ ফ্যাক্টর গণনা করলে মোট ২ ফ্যাক্টর ৬টি এবং ৫ ফ্যাক্টর ৮টি পাওয়া যায়। কমটি ৬, তাই ৬টি ট্রেইলিং জিরো।
ইনপুট: Arr[] = { 10,10,10,10,10 }
আউটপুট: ট্রেইলিং জিরোর সংখ্যা: ৫
- ধনাত্মক পূর্ণসংখ্যার অ্যারে এবং এর দৈর্ঘ্য N নেওয়া হয়।
trailZeros(int arr[], int n)ফাংশন অ্যারে ও n নিয়ে ট্রেইলিং জিরোর সংখ্যা রিটার্ন করে।- দুটি ভেরিয়েবল
twosএবংfivesদিয়ে ২ ও ৫ ফ্যাক্টরের কাউন্ট রাখা হয়। - অ্যারে ট্রাভার্স করে প্রতিটি উপাদানকে ২ ও ৫ দিয়ে বারবার ভাগ করে ফ্যাক্টর সংখ্যা বেড়ানো হয়।
- শেষে
min(twos, fives)রিটার্ন করা হয়।
#includeusing namespace std; int trailZeros(int arr[], int n){ int twos = 0, fives = 0; for (int i = 0; i < n; i++){ while(arr[i] % 2 == 0 || arr[i] % 5 == 0){ if(arr[i] % 2 == 0){ arr[i] /= 2; twos++; } if(arr[i] % 5 == 0){ arr[i] /= 5; fives++; } } } return min(twos, fives); } int main(){ int Arr[] = { 12, 5, 15, 8, 100, 40 }; int Length = sizeof(Arr)/sizeof(Arr[0]); cout << endl << "ট্রেইলিং জিরোর সংখ্যা: " << trailZeros(Arr, Length); return 0; }
উপরোক্ত কোড রান করলে আউটপুট:
ট্রেইলিং জিরোর সংখ্যা: ৫