मान लीजिए हमारे पास एक संख्या n है, हमें n! (n फैक्टोरियल) में ट्रेलिंग जीरो (अंत में आने वाले शून्य) की संख्या ज्ञात करनी है।
उदाहरण के लिए, यदि इनपुट n = 20 है, तो आउटपुट 4 होगा, क्योंकि 20! = 2432902008176640000
समाधान दृष्टिकोण
ट्रेलिंग जीरो की संख्या 10 के गुणनखंडों की संख्या पर निर्भर करती है, और चूंकि 10 = 2 × 5, और 2 के गुणनखंड 5 से अधिक होते हैं, इसलिए हमें केवल 5 के गुणनखंडों की गिनती करनी होती है।
count := 0- i = 5 से शुरू करके, जब तक
n/i >= 1, i को 5 से गुणा करते हुए:count += n/i
countवापस करें।
उदाहरण (C++ कोड)
#include <iostream>
#include <cmath>
using namespace std;
int countTrailingZeros(int n) {
int count = 0;
for (int i = 5; n / i >= 1; i *= 5)
count += n / i;
return count;
}
int main() {
int n = 20;
cout << "Number of trailing zeros: " << countTrailingZeros(n);
return 0;
} इनपुट
20
आउटपुट
Number of trailing zeros: 4