博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

不要被阶乘吓倒(编程之美2.2)

Posted on 2010-09-23 19:33  KurtWang  阅读(197)  评论(0)    收藏  举报
#include "stdafx.h"


//N阶乘末尾有多少个0
int question1(int n)
{
	int ret = 0;
	while(n)
	{
		n /= 5;
		ret += n;
	}
	return ret;
}

//N阶乘的二进制表示中最低位1的位置
int question2(int n)
{
	int ret =0;
	while(n)
	{
		n >>= 1;
		ret += n;
	}
	return ret + 1;
}

int _tmain(int argc, _TCHAR* argv[])
{
	printf("%d\n",question1(10));
	printf("%d\n",question2(3));
	printf("%d\n",question2(4));
	return 0;
}