现在的位置: 首页 > 综合 > 正文

hdu 1018 Big Number

2013年12月04日 ⁄ 综合 ⁄ 共 364字 ⁄ 字号 评论关闭

题意是求N!的位数,纯数学,一开始我也不知道,在网上查到的公式。

代码:

/*
		Author:snowflake
		Time:2012/4/26 14:46
		Desc:hdu 1018 数学题 
*/
/*
求N!的位数,可以看成是10的多少次方
有公式: N次方阶乘的位数等于: log10(N!) = log10(1) + log10(2)+...+log10(N)取整后加1
*/
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int n;
	cin >> n;
	for(int i = 0; i < n; i++)
	{
		double s = 0;
		int num;
		cin >> num;
		for(int j = 1; j <= num; j++)
			s += log10(double(j));
		cout << (int)s + 1 <<endl;
	}
	return 0;
}

抱歉!评论已关闭.