您的位置:首页 > 其它

HDU-1018 Big Number

2018-03-23 11:58 435 查看

Big Number

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 41122    Accepted Submission(s): 20131


[align=left]Problem Description[/align]In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc. In this problem you are given a number, you have to determine the number of digits in the factorial of the number.
 
[align=left]Input[/align]Input consists of several lines of integer numbers. The first line contains an integer n, which is the number of cases to be tested, followed by n lines, one integer 1 ≤ n ≤ 107 on each line.
 
[align=left]Output[/align]The output contains the number of digits in the factorial of the integers appearing in the input.
 
[align=left]Sample Input[/align]
2
10
20 
[align=left]Sample Output[/align]
7
19 
[align=left]
[/align]解答:利用log10
代码:#include<iostream>
#include<queue>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
#include<sstream>
#include<cstdlib>
#include<map>
const int N =1005;
using namespace std;
int main(){
int n,T,ans;
cin>>T;
while(T--){
cin>>n;
double total = 0;
for(int i =2;i<=n;i++){
total+=log10(i*1.0);
}
ans = (int)total + 1;
cout<<ans<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: