请教一个编程题目的解法
求N!算出来的结果有多少位.思路是什么?到底该怎么样求?我的数学功底不好,想了半天还是没什么头绪!
做出来了,有两种方法
第一种.int main()
{
int n, i, m ;
double s = 1;
while(cin >> n)
{
m = 0;
s = 1;
for(i = n; i; i--)
{
s *=i;
while(s>=10)
{
s/=10;
m++;
}
}
cout << ++m << endl;
}
return 0;
第二种:
int main()
{
int n, l;
double s;
while(cin >> n)
{
s = 0;
l = 0;
for (int i = 1; i <= n; i++)
s +=log10(i);
l = (int) s;
cout << ++l << endl;
}
return 0;
}
谢谢你们的帮助啊!!