当前位置:C++技术网 > 资讯 > 面试题:2 谷歌:1024!末尾有多少个0?

面试题:2 谷歌:1024!末尾有多少个0?

更新时间:2016-01-14 19:27:28浏览次数:1+次

  1024!  

   首先大家知道两个数相乘怎么才能得0这个数字,可能大家很容易想到2*5 , 还必须想到就是乘法运算计算末尾0的计算也是取决于乘法因子2*5的个数,那么问题就转变成,有多少个2*5因子的组合。

   所以就可以在这里开始分析:2的因子不用说绝对比5多,所以我们开始找5这个因子, 也就是找1到1024中能被5整除但是不能被10整除数字,他的个数就是2*5因子的个数, 所以简单的程序就出来了

#include<iostream>
using namespace std;
static int find_five(int num)
{
	int result = 0;
	while (num > 5) {
		num = (num - (num % 5)) / 5;
		result += num;
	}
	return result;
}
int main()
{
	cout << "个数:"<<find_five(1024)<< endl;
	system("pause");
	return 0;
}


当然程序很简单,关键要分析出怎么才能得到末尾是0