NEFU OJ26 计算阶乘位数

来源:互联网 发布:广告联盟挂机软件 编辑:程序博客网 时间:2024/05/17 09:20

#include<iostream>  #include<stdio.h> #include<math.h>using namespace std;int digit(int n){   double d = 0;   for(int i =1;i<=n;++i)   {   d += log10((double)i);   }   return (int)(d+1);}int main()  {  int m,n,result;while(scanf("%d",&m) != EOF){while(m>0){scanf("%d",&n);result = digit(n);printf("%d\n",result);--m;}}    return 0;  }  

用到数学知识,计算数的位数,数字为n,(int)log10(n)+1。

阶乘位数为log10(1*2*3*4...*n) = log10(1)+log10(2)+log10(3)+...+log10(n)。


0 0
原创粉丝点击