您的位置:首页 > 其它

HDU 1018 Big Number

2017-01-20 20:33 471 查看
题意:输入一个n,算出n!的位数。

思路:直接套用公式。

例:123456789=1.23456789*10^8

log10(123456789)=log10(1.23456789*10^8)=log10(1.23456789)+log10(10^8)=8

.

由此可推导n!的位数=log10(n)+1。

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
int n, x;
double y;
cin >> n;
while (n--)
{
y = 0;
cin >> x;
for (int i = 1; i <= x; i++)
{
y = y + log10(i*1.0);
}
cout << (int)y+1 << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: