zoukankan      html  css  js  c++  java
  • hd acm1018

    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 ≤ 107 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


    Sample Way

    #include <stdio.h>
    #include <math.h>

    int main()     //用对数来解决位数过大溢出的问题
    {
      int n,i,x;
      double counter;
      scanf("%d",&n);
      for(i=1;i<=n;i++)

      {

      scanf("%d",&x);

      x+=1;
      counter=0;
      while(--x)

      {
      counter+=log10(x);
      }
      printf("%d ",(int)counter+1);
      }
      return 0;
    }

     
  • 相关阅读:
    kvm-在virsh环境中改变CD媒介
    Mysql5.7.16安装过程
    Pycharm 2016专业版激活方式
    Tornado
    Django
    python day18
    python day16
    day15
    python day11
    B10-openstack高可用(t版)-nova计算节点节点集群部署
  • 原文地址:https://www.cnblogs.com/clljs/p/7423647.html
Copyright © 2011-2022 走看看