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;
    }
  • 相关阅读:
    GitFlow 工作流指南
    第一个 Spring Boot 应用程序
    Spring Boot MyBatis
    JavaScript的并且&&
    利用JavaScript的%读分秒
    利用JavaScript的%做隔行换色
    利用JavaScript制作计算器
    利用JavaScript制作简易日历
    javascript实现选项卡切换的4种方法
    循环
  • 原文地址:https://www.cnblogs.com/nyist-xsk/p/7264847.html
Copyright © 2011-2022 走看看