[HDOJ]1018. Big Number
恩,简单的数学题目。
简单推导如下:
log10(n!) = log10(n*n-1*n-2......*2*1) = log10(n) + log10(n-1) + log10(n-2) + ...... + log10(2) + log10(1)
log10(100) = 2;
log10(200) = 2.301;
log10(1000) = 3;
log10(1500) = 3.176;
你能看出规律来了吗,呵呵,对头,就是这样子的。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,m;
double cnt;
cin>>n;
while(n--)
{
cnt = 0.0;
cin>>m;
for(int i = 1;i <= m;++i)
cnt = cnt + log10(i*1.0);
int digit_cnt = (int)(cnt) + 1;
cout<<digit_cnt<<endl;
}
return 0;
}
我没有什么雄心壮志,我只想给自己和关心自己的家人和朋友一个交代,仅此而已。


浙公网安备 33010602011771号