杭电1018题

//求阶乘的位数

//方法:使用10的对数解决
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
 int count;
 cin>>count;
 while(count--)
 {
  int number;
  cin>>number;
  double sum = 0;
  for(int i = 1;i<number+1;i++)
  {
   sum+=log10((double)i);
  }
  //注意不要使用floor,否则会出现结果错误的情况
  cout<<(int)(sum+1)<<endl;
 } 
 return 0;
}

posted @ 2010-04-25 20:39  北海小龙  阅读(255)  评论(0编辑  收藏  举报