10 的产生是由于 2 和 5 这两个因子。 所以一个数尾部有多少个 0, 是要看可以被除出来 多少对 2和5 的因子
#include <iostream>
#define debug(); cout<<__LINE__<<endl;
using namespace std;
int date[] =
{
5650, 4542, 3554, 473, 946, 4114,3871,9073,90, 4329,
2758, 7949, 6113, 5659, 5245,7432,3051,4434,6704,3594,
9937, 1173, 6866, 3397, 4759,7557,3070,2287,1453,9899,
1486, 5722, 3135, 1170, 4014,5510,5120,729, 2880,9019,
2049, 698, 4582, 4346, 4427,646, 9742,7340,1230,7683,
5693, 7015, 6887, 7381, 4172,4341,2909,2027,7355,5649,
6701, 6645, 1671, 5978, 2704,9926,295, 3125,3878,6785,
2066, 4247, 4800, 1578, 6652,4616,1113,6205,3264,2915,
3966, 5291, 2904, 1285, 2193,1428,2265,8730,9436,7074,
689, 5510, 8243, 6114, 337, 4096,8199,7313,3685,211
};
int main()
{
int num; //记录输入的数字;
int m = 0; //记录2的个数;
int n = 0; //记录5的个数;
for (int i = 0; i < 100; i++)
{
num = date[i];
while (num % 2==0)
{
m++;
num /= 2;
}
while (num % 5 == 0)
{
n++;
num /= 5;
}
}
cout << (m < n ? m : n); //输出m和n的较小值(三目运算符的用法自行百度);
return 0;
}