数学题 暴力水过 估计是想卡暴力运算的时间 但是没卡好 当然第一遍判断是不是0(之前以为0和其他情况不同 结果发现我错了 不用判断0的情况)
求一个数多少位:int (log10(x)+1)
log10(N!)=log10(0)+log10(1)........log(N)
数学太差了。。。。。
标准做法应该是斯特林公式 不过看不懂 回头补上吧 lnN!=NlnN-N+0.5*ln(2*N*pi) 这个是神马东西?? 可以直接用 ??
1 /* 2 Name:hdu1018 3 Copyright: 4 Author:yujiaao 5 Date: 6 Description:hdu 7 */ 8 #include9 #include 10 #include 11 using namespace std;12 int main()13 {14 15 // freopen("C:\\Users\\yujiaao\\Desktop\\测试专用\\in.txt","r",stdin);16 // freopen("C:\\Users\\yujiaao\\Desktop\\测试专用\\out.txt","w",stdout);17 int ncase,i,j,a;18 double sum;19 scanf("%d",&ncase);20 while(ncase--)21 {22 scanf("%d",&a);23 sum=0;24 for(i=1;i<=a;i++)25 {26 sum+=log10(i); 27 }28 printf("%d\n",int (sum+1));29 }30 // system("pause");31 return 0;32 }