hdu1018阶乘位数

简介:

n!的位数=log10(1)+...+log(n);

n!=sqrt(2*π*n)*(n/e)^n;

代码如下:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int m,n;
    cin>>m;
    for(int i=0;i<m;i++)
    {
        cin>>n;
        double sum=0.5*log10(2*3.1415927*n)+n*log10(n/2.718281828459);
        cout<<(int)sum+1<<endl;
    }
    return 0;
}


目录
相关文章
|
3月前
|
JavaScript 前端开发 PHP
leetcode——两数相加【二】
leetcode——两数相加【二】
31 0
|
6月前
|
人工智能 算法
DAY-1 | 迭乘法、辗转相除法、试除法:最大公约数与最小公倍数问题
这段内容是一个关于计算两个数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)的编程题目说明,包括题干、题解和方法总结。其中提到了两种方法:辗转相除法和试除法。辗转相除法通过不断用较大数除以较小数直到余数为零来求最大公约数,然后利用两数乘积除以最大公约数得到最小公倍数。试除法则是通过循环尝试两数的倍数是否同时能被两数整除来求解。在方法总结部分,还介绍了迭乘法求最小公倍数的方法。
67 0
|
机器学习/深度学习 算法
【Leetcode】面试题 16.05. 阶乘尾数、HJ7 取近似值
目录 面试题 16.05. 阶乘尾数 HJ7 取近似值
68 0
|
6月前
|
存储
【力扣】2. 两数相加、445. 两数相加Ⅱ
【力扣】2. 两数相加、445. 两数相加Ⅱ
|
6月前
|
存储
leetcode-2:两数相加
leetcode-2:两数相加
39 0
|
存储
每日一题(两数相加)
每日一题(两数相加)
|
存储 Java Python
leetcode:2.两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
52 0
|
机器学习/深度学习 Java
LeetCode——479. 最大回文数乘积
LeetCode——479. 最大回文数乘积
95 0
每日一题——最大回文数乘积
每日一题——最大回文数乘积
106 0