zoukankan      html  css  js  c++  java
  • Number lengths FZU

    N! (N factorial) can be quite irritating and difficult to compute for large values of N. So instead of calculating N!, I want to know how many digits are in it. (Remember that N! = N * (N - 1) * (N - 2) * … * 2 * 1)

    Input
    Each line of the input will have a single integer N on it 0 < N < 1000000 (1 million). Input is terminated by end of file.

    Output
    For each value of N, print out how many digits are in N!.

    Sample Input
    1
    3
    32000
    Sample Output
    1
    1
    130271

    //N!位数应该是 log10(1)+log10(2)+···+log10(n) 取整加1,
    //注意:log10(n)传入的值必须是double型,所以要进行强制转换!
    #include<map>
    #include<queue>
    #include<stack>
    #include<vector>
    #include<math.h>
    #include<cstdio>
    #include<sstream>
    #include<numeric>//STL数值算法头文件
    #include<stdlib.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    #include<functional>//模板类头文件
    using namespace std;
    
    const int INF=1e9+7;
    const int maxn=110;
    typedef long long ll;
    
    int n;
    
    int main()
    {
        while(~scanf("%d",&n))
        {
            int i,j=0;
            double sum=0;
            for(i=1; i<=n; i++)
                sum+=log10(double(i));
            j=(int)sum+1;
            printf("%d
    ",j);
        }
        return 0;
    }
  • 相关阅读:
    B-线性代数-距离公式汇总
    B-线性代数-范数
    B-线性代数-矩阵转置
    B-概率论-贝叶斯决策
    B-概率论-极大似然估计
    B-概率论-条件概率
    2018.1.7java转型
    追求
    面向心态
    数据类型和type函数
  • 原文地址:https://www.cnblogs.com/nyist-xsk/p/7264847.html
Copyright © 2011-2022 走看看