Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรมหาจำนวนศูนย์ท้ายในแฟกทอเรียลของ n ใน C++


สมมติว่าเรามีตัวเลข n เราต้องหาจำนวนศูนย์ท้ายของ n!

เช่น ถ้าอินพุตเป็น n = 20 ผลลัพธ์จะเป็น 4 เพราะ 20! = 2432902008176640000

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนต่อไปนี้:

  • กำหนด count := 0

  • ลูป for i := 5, (n/i) >= 1, อัปเดต i := i * 5 ให้ทำ:

    • count := count + (n / i)

  • คืนค่า count

ลองดูการนำไปใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น:

ตัวอย่าง

#include <iostream> #include <cmath> #define MAX 20 using namespace std; int countTrailingZeros(int n) {    int count = 0;    for (int i = 5; n / i >= 1; i *= 5)       count += n / i;    return count; } main() {    int n = 20;    cout << "Number of trailing zeros: " << countTrailingZeros(n); }

อินพุต

20

เอาต์พุต

Number of trailing zeros: 4