Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình tìm số 0 ở cuối theo giai thừa của n trong C ++?


Giả sử chúng ta có một số n, chúng ta phải tìm số lượng các số không ở cuối của n !.

Vì vậy, nếu đầu vào là n =20, thì đầu ra sẽ là 4, là 20! =2432902008176640000

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau

  • đặt số lượng:=0

  • for i:=5, (n / i)> 1, update i:=i * 5, do

    • count:=count + (n / i)

  • số lần trả lại

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn

Ví dụ

#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);
}

Đầu vào

20

Đầu ra

Number of trailing zeros: 4