আমাদেরকে N আকারের ধনাত্মক পূর্ণসংখ্যার একটি অ্যারে Arr[] দেওয়া হয়েছে। লক্ষ্য হল অ্যারের সমস্ত উপাদানের গুণফলের পিছনে থাকা শূন্যের সংখ্যা গণনা করা।
আমরা প্রতিটি সংখ্যার গুণনীয়ক গণনা করে এটি করব। আমরা 2 এবং 5 কে প্রতিটি সংখ্যার গুণনীয়ক হিসাবে গণনা করব কারণ 2 এবং 5 এর গুণফল হল 10 যা 1 অনুগামী 0 দেয়। শেষ পর্যন্ত যেটি সংখ্যাটি ছোট হয় তা গুণফলের শূন্যের অনুগামী গণনা দেয়। যদি আমাদের 4 2 এবং 6 5 থাকে তাহলে গুণফলটিতে 4টি অনুগামী শূন্য থাকবে - 2*2*2*2*5*5*5*5*5*5=250000
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট
Arr[] = { 2, 5, 10, 15, 20, 25, 100 }
আউটপুট
Number of trailing zeroes : 6
ব্যাখ্যা
Factors 2 and 5 of each element of Arr[]: Arr[0] = 2 : 2 twos=1, fives=0 Arr[1] = 5 : 5 twos=1, fives=1 Arr[2] = 10 : 2*5 twos=2, fives=2 Arr[3] = 15 : 3*5 twos=2, fives=3 Arr[4] = 20 : 2*2*5 twos=4, fives=4 Arr[5] = 25 : 5*5 twos=4, fives=6 Arr[6] = 100 : 2*2*5*5 twos=6, fives=8 Count of 2 is less so trailing zeroes will be 6.
ইনপুট
Arr[] = { 10,10,10,10,10 }
আউটপুট
Number of trailing zeroes : 5
ব্যাখ্যা
Factors 2 and 5 of each element of Arr[]: Arr[0] = 10 : 2*5 twos=1, fives=1 Arr[1] = 10 : 2*5 twos=2, fives=2 Arr[2] = 10 : 2*5 twos=3, fives=3 Arr[3] = 10 : 3*5 twos=4, fives=4 Arr[4] = 10 : 2*5 twos=5, fives=5 Count of 2 and 5 is equal so trailing zeroes will be 5.
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
আমরা N..
দৈর্ঘ্যের ধনাত্মক পূর্ণসংখ্যার একটি অ্যারে নিই -
ফাংশন trailZeros(int arr[],int n) অ্যারে এবং n কে ইনপুট হিসাবে নেয় এবং সমস্ত উপাদানের গুণফলের পিছনের শূন্যের সংখ্যা প্রদান করে।
-
শূন্য সংখ্যার জন্য প্রাথমিক পরিবর্তনশীল গণনা 0 হিসাবে নিন।
-
গুণনীয়ক হিসাবে 2 এবং 5 এর গণনা হিসাবে দুটি চলক দুই এবং পাঁচ নিন।
-
লুপের জন্য ব্যবহার করে ট্রাভার্স অ্যারে।
-
প্রতিটি উপাদানের জন্য যদি এটি 2 বা 5 দ্বারা বিভাজ্য হয় তাহলে দুই এবং পাঁচটি বৃদ্ধি করুন এবং 2 বা 5 দ্বারা হ্রাস করুন৷
-
লুপের শেষে দুই এবং পাঁচের মান চেক করুন যেটি ছোট।
-
দুটির কম দিয়ে গণনা শুরু করুন।
-
ফলাফল হিসাবে গণনা ফেরত দিন।
উদাহরণ
#include <bits/stdc++.h< using namespace std; int trailZeros(int arr[],int n){ int count = 0; int twos = 0; int 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]=arr[i]/2; twos++; } if(arr[i]%5==0){ arr[i]=arr[i]/5; fives++; } } } count=twos<fives?twos:fives; return count; } int main(){ int Arr[]={ 12, 5 , 15, 8, 100, 40 }; int Length= sizeof(Arr)/sizeof(Arr[0]); cout <<endl<< "Number of trailing zeroes : "<<trailZeros(Arr,Length); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেNumber of trailing zeroes : 5