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

     
  • 相关阅读:
    linux shell
    jsp应用
    JavaScript基础整理(2)
    Struts2验证框架实例
    一个Struts2的实例
    Java继承和多态实例
    VS2010webConfig配置
    html兼容性
    Linux 入门记录:一、命令行 Bash 的基本操作
    微信支付:curl 出错,错误码: 60
  • 原文地址:https://www.cnblogs.com/clljs/p/7423647.html
Copyright © 2011-2022 走看看