zoukankan      html  css  js  c++  java
  • HPU--1166 阶乘问题(一)

    题目描述

    小H对阶乘!很感兴趣。现在他想知道$N!$的位数,由于$N$太大了,所以请了你这个BestCoder来帮忙。

    输入

    第一行输入一个整数$T$,代表有$T$组测试数据。

    每组数据输入一个整数$N$。

    注:$1 <= T <= 10, 1 <= N <= 2 * 10^6$。

    输出

    对每组数据,输出$N!$的位数。

    样例输入

    2
    100
    1000

    样例输出

    158
    2568
    题解:N!==N*(N-1)*(N-2)*(N-3)*...*1;阶乘的位数就是对n个数分别取对数,然后求和,取整后加一
    代码:
     1 #include<cstdio>
     2 #include<cmath>
     3 int main()
     4 {
     5     int t,n;
     6     scanf("%d",&t);
     7     while(t--)
     8     {
     9         scanf("%d",&n);
    10         double sum=0;
    11         for(int i=1;i<=n;i++)
    12         {
    13             sum+=log10(i);
    14         }
    15         printf("%d
    ",(int)sum+1);
    16     }
    17     return 0;
    18 }
     
  • 相关阅读:
    gin内置验证器使用
    model
    work,工作模式
    orm框架
    simple模式下rabbitmq的代码
    rabbitmq介绍
    订阅模式
    路由模式
    redis五大数据类型
    Go操作redis
  • 原文地址:https://www.cnblogs.com/hss-521/p/7367548.html
Copyright © 2011-2022 走看看