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;
    }

     
  • 相关阅读:
    关于SqlServer远程跨库修改数据
    泛型进阶
    .NET泛型初探
    Basic MF
    特征工程
    序列最小最优化算法(SMO)-SVM的求解(续)
    感知器、逻辑回归和SVM的求解
    排序小结
    梯度下降、牛顿法和拉格朗日对偶性
    从决策树到随机森林
  • 原文地址:https://www.cnblogs.com/clljs/p/7423647.html
Copyright © 2011-2022 走看看