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

โปรแกรม C หาจำนวนศูนย์ท้าย (Trailing Zeros) ของแฟกทอเรียล


คำอธิบาย

Trailing zeros ของ n! คือจำนวนศูนย์ติดต่อกันด้านขวาสุดของค่าแฟกทอเรียล หาได้จากการนับตัวประกอบ 5 (เพราะ 2×5=10 และตัวประกอบ 2 มีมากกว่า 5 เสมอ)

ตัวอย่าง

  • 4! = 24 → 0 trailing zeros
  • 5! = 120 → 1 trailing zero
  • 6! = 720 → 1 trailing zero

อัลกอริทึม

จำนวนศูนย์ท้าย = n/5 + n/25 + n/125 + ... (หาร 5 ซ้ำจนผลหารเป็น 0)

โค้ดตัวอย่าง

#include <stdio.h>

static int trailing_Zeroes(int n) {
    int count = 0;
    while (n > 0) {
        count += n / 5;
        n /= 5;
    }
    return count;
}

int main() {
    int n;
    printf("Enter integer: ");
    scanf("%d", &n);
    printf("Trailing zeros of %d! = %d\n", n, trailing_Zeroes(n));
    return 0;
}

ผลลัพธ์

Enter integer: 5
Trailing zeros of 5! = 1
Enter integer: 6
Trailing zeros of 6! = 1