【面試題】——求末尾 0 的個數
阿新 • • 發佈:2019-01-14
題目描述:
輸入一個正整數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結果圖