- 题目描述:
图片说明
- 题目链接:
https://www.nowcoder.com/practice/aa03dff18376454c9d2e359163bf44b8?tpId=196&&tqId=37136&rp=1&ru=/activity/oj&qru=/ta/job-code-total/question-ranking

- 设计思想:
图片说明
图片说明
-视频讲解链接B站视频讲解
- 复杂度分析:
图片说明
- 代码:
c++版本:

class Solution {
public:
    /**
     * the number of 0
     * @param n long长整型 the number
     * @return long长整型
     */
    long long thenumberof0(long long n) {
        // write code here
        long long sum = 0;
        while (n) {
            sum += n / 5;
            n = n / 5;
        }
        return sum;
    }
};

Java版本:

import java.util.*;


public class Solution {
    /**
     * the number of 0
     * @param n long长整型 the number
     * @return long长整型
     */
    public long thenumberof0 (long n) {
        // write code here
        long sum = 0;
        while (n > 0) {
            sum += n / 5;
            n = n / 5;
        }
        return sum;
    }
}

Python版本:

#
# the number of 0
# @param n long长整型 the number
# @return long长整型
#
class Solution:
    def thenumberof0(self , n ):
        # write code here
        sum = 0
        while n > 0:
            sum += (n//5)
            n = n // 5
        return sum

JavaScript版本:

/**
 * the number of 0
 * @param n long长整型 the number
 * @return long长整型
 */
function add(a ,b){
   //取两个数字的最大长度
   let maxLength = Math.max(a.length, b.length);
   //用0去补齐长度
   a = a.padStart(maxLength , 0);//"0009007199254740991"
   b = b.padStart(maxLength , 0);//"1234567899999999999"
   //定义加法过程中需要用到的变量
   let t = 0;
   let f = 0;   //"进位"
   let sum = "";
   for(let i=maxLength-1 ; i>=0 ; i--){
      t = parseInt(a[i]) + parseInt(b[i]) + f;
      f = Math.floor(t/10);
      sum = t%10 + sum;
   }
   if(f == 1){
      sum = "1" + sum;
   }
   return sum;
}
function thenumberof0( n ) {
    // write code here
    let sum = 0;
    let res = "";
    while(n > 0){
        res = add(res,(""+(parseInt(n / 5))));
        n = parseInt(n / 5);
    }
    return res;///这里用字符串返回即可

}
module.exports = {
    thenumberof0 : thenumberof0
};