南阳理工acm 69数的长度(斯特林(Stirling)公式)

xiaoxiao2021-02-27  271

数的长度

时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 1 描述

    N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)?

输入 首行输入n,表示有多少组测试数据(n<10) 随后n行每行输入一组测试数据 N( 0 < N < 1000000 ) 输出 对于每个数N,输出N!的(十进制)位数。 样例输入 3 1 3 32000 样例输出 1 1 130271 想法:没什么想法,记住斯特林(Stirling)公式,有兴趣自己百度一下。 代码: #include<stdio.h> #include<math.h> int main() {     int n;     scanf("%d",&n);     while(n--)     {     int m,i;     double k=0.0;     int sum=1;     scanf("%d",&m);     for(i=1;i<=m;i++)     {         k=k+log10(i);     }     printf("%d\n",(int)k+1);     }     return 0; }  
转载请注明原文地址: https://www.6miu.com/read-9709.html

最新回复(0)