加入收藏 | 设为首页 | 会员中心 | 我要投稿 宜春站长网 (https://www.0795zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

hdu1018——Big Number(大数阶乘)

发布时间:2021-05-26 20:59:08 所属栏目:大数据 来源:网络整理
导读:Problem Description 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 n

Problem Description 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.
?
Input 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 ≤ 10 7?on each line.
?
Output The output contains the number of digits in the factorial of the integers appearing in the input.
?
Sample Input
  
  
   
   2
10
20
  
  
?
Sample Output
  
  
   
   7
19
  
  

n的位数=log10(n)+1,m=n!,=log10^1+log10^2+...+log10^n

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
    int n,m,i,ans;
    double t;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&m);
        t=0;
        for(i=2;i<=m;++i)
            t+=log10(i*1.0);
            ans=int(t)+1;
        cout<<ans<<endl;
    }
    return 0;
}

(编辑:宜春站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读