设计一个算法,计算出n阶乘中尾部零的个数

    技术2024-11-06  9

    设计一个算法,计算出n阶乘中尾部零的个数 样例 1: 输入: 11 输出: 2

    样例解释: 11! = 39916800, 结尾的0有2个。

    样例 2: 输入: 5 输出: 1

    样例解释: 5! = 120, 结尾的0有1个。

    功能实现

    class Solution{ public: long long trailingZeros(long long n) { int temp = multi(n); int count = 0; while((temp % 10) == 0){ count++; temp /= 10; } return count; } private: long long multi(long long n){ if (n == 1){ return 1; } else{ return n * multi(n - 1); } } };

    功能测试

    int main() { int tempp = 0; int num; cin >> num; Solution s; tempp = s.trailingZeros(num); cout << tempp << endl; return 0; }

    注意:这里需要考虑时间复杂度的问题

    Processed: 0.030, SQL: 9