登 录
用到了stirling公式,即取常数对数来求阶乘的位数
两边求对数(常数对数)即可发现规律
对于e和pi的精度,可别忘了蝴蝶效应哦
#include <stdio.h> #include <math.h> #define e 2.71828182845904523536 #define pi 3.1415926535897932384 int main() { double le; long n,a,len; scanf("%ld",&n); while(n--) { scanf("%ld",&a); if(a>=2) { le=0.5*log10(2*pi*a)+a*log10(a/e); len = (long)le; } if(a==0||a==1) printf("1/n"); else printf("%ld/n",len+1); } system("pause"); return 0; }
抱歉!评论已关闭.