对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度。如:18!=6402373705728000,尾部连续0的个数是3。
(不用考虑数值超出计算机整数界限的问题)
 
int NumZero (int n){   
  int tmp;  
  int res = 0;  
  while (n> 4){ // 4以下就不管了,没有0  
    tmp = n--;  
    while(tmp % 5 == 0){ // 这里是本算法的精髓  
      ++res;  
      tmp /= 5;  
    }  
  }   
  return res;  
 
///////////////////////////////////////
int NumZero (int n){   
int res = 0;   
  for(;n>0;n/=5) res += n/5;
  return res;