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

C / C ++ Chương trình đếm các số 0 ở cuối theo giai thừa của một số?

Ở đây chúng ta sẽ xem cách tính số 0 ở cuối cho kết quả là giai thừa của một số bất kỳ. Vì vậy, nếu n =5, thì 5! =120. Chỉ có một dấu 0. Đối với 20 !, nó sẽ là 4 số không là 20! =2432902008176640000.

Cách tiếp cận đơn giản nhất là chỉ tính giai thừa và đếm các số 0. Nhưng cách tiếp cận này không thành công đối với giá trị lớn của n. Vì vậy, chúng tôi sẽ làm theo một cách tiếp cận khác. Các số không ở cuối sẽ ở đó, nếu các thừa số nguyên tố là 2 và 5. Nếu chúng ta đếm 2s và 5, chúng ta có thể nhận được kết quả. Vì điều đó, chúng tôi sẽ tuân theo quy tắc này.

Số 0 ở sau =Đếm 5 5 trong các thừa số nguyên tố của giai thừa (n)

C / C ++ Chương trình đếm các số 0 ở cuối theo giai thừa của một số?

Thuật toán

countTrailingZeros (n)

 bắt đầu đếm:=0 cho i:=5, (n / i)> =1, tăng i:=i * 5, thực hiện đếm:=đếm + (n / i) hoàn thành đếm trả về; kết thúc  

Ví dụ

 #include  #include  #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; số trả về;} main () {int n =20; cout <<"Số lượng các số không ở cuối:" < 

Đầu ra

 Số lượng số không ở cuối:4