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

Lập trình C / C ++ để đếm các số 0 ở cuối trong giai thừa của một số?


Đếm số lượng các số 0 ở cuối trong một số giai thừa được thực hiện bằng cách đếm số 2s và 5s trong các thừa số của số đó. Bởi vì 2 * 5 cho 10, là số 0 ở cuối trong giai thừa của một số.

Ví dụ

Giai thừa của 7 =5040, số chữ số 0 ở cuối là 1.

Dựa trên logic 7 của chúng tôi! =2 * 3 * 4 * 5 * 6 * 7, nó có 3 2 giây và 1 5 giây nên số dấu 0 theo sau là 1.

#include <iostream>
using namespace std;
int main() {
   int n = 45;
   int count = 0;
   for (int i = 5; n / i >= 1; i *= 5)
      count += n / i;
   cout<<"No of trailing 0s in " << n<< "! is " << count;
   return 0;
}

Đầu ra

No of trailing 0s in 24! is 10