zoukankan      html  css  js  c++  java
  • 计算一个大数n的阶乘的位数宽度(十进制)(log i累加法 )

    输入:

          每行输入1个正整数n, (0<n<1000 000)

    输出:

          对于每个n,输出n!的(十进制)位数。

    分析:

          这道题采用蛮力法。根据定义,直接求解!

        所谓n!的十进制位数,就是 log(n)+1, 根据数学公式有:n!=1*2*3*.....*n;

                                                                                lg(n!)=lg(2)+......lg(n);

      代码:

            

    //输入一个数字n,请你计算该数的阶乘的十进制数的位数宽度
    //比如:3!=6, 则宽度为1
    //样例数据:
    //n=3  输出1
    //n=32000  输出130271
    //n=1000000  输出5565709
    
    #include <string>
    #include <iostream>
    #include <iomanip>
    #include <stdio.h>
    #include <cmath>
    
    using namespace std;
    
    int main()
    {
        long int n;
        long int i;
        double sum;
    
        while(scanf("%ld", &n)!=EOF)
        {
            sum=0.0;
            for(i=2; i<=n; i++)
            {
                sum+=log10(i);
            }
            printf("%ld
    ", (int)sum+1 );
        }
        return 0;
    }
    
  • 相关阅读:
    冥想
    格局
    Python_Example_Socket 学习
    Python_Example_Thread 线程 学习/经验/示例
    Python_Example_Process 正则表达 Re 学习/经验/示例
    Python_Example_Process 进程 学习/经验/示例
    Django的认证系统
    form表单
    ajax
    Django之视图
  • 原文地址:https://www.cnblogs.com/yspworld/p/4143667.html
Copyright © 2011-2022 走看看