HDU 1018 Big Number(数学知识)

来源:互联网 发布:江宁区高新园网络问政 编辑:程序博客网 时间:2024/06/05 15:20

Big Number

题意:n!的结果由多少位组成。


假设10^x近似n!,则x=lg(n!),展开x=lg(n)+lg(n-1)+lg(n-2)+...+lg1。


代码:

#include<stdio.h>  #include<math.h>  double solve(int n)  {      double cnt=0;      for(int i=2;i<=n;i++)      {          cnt+=log10(i);      }      return cnt;  }    int main()  {      int cas,n;      scanf("%d",&cas);      while(cas--)      {          scanf("%d",&n);          printf("%d\n",(int)solve(n)+1);      }      return 0;  }

原创粉丝点击