1. 程式人生 > >【面試題】——求末尾 0 的個數

【面試題】——求末尾 0 的個數

題目描述:

輸入一個正整數n,求n!(即階乘)末尾有多少個0? 比如: n = 10; n! = 3628800,所以答案為2

輸入描述:

   輸入為一行,n(1 ≤ n ≤ 1000)

輸出描述:

    輸出一個整數,即題目所求

示例1

輸入     10

輸出      2

分析:只有2*5的時候可以產生零,而5的個數比2的少,所以求5的個數就是零的個數。

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std
; int Zero(int n) { int ret = 0; while(n >= 5 && n%5 == 0) { ret++; n = n/5; } return ret; } int main() { int n; scanf("%d", &n); int sum = 0; for(int i = 5; i <= n; i+=5) { sum += Zero(i); } printf
("%d\n", sum); return 0; }

j結果圖