HD 1018

非常简单的一道题目,可以用多种方法做出:

法一:

int jiecheng(int n)
{
    int i=0,m;
    for(i;i<n;i++)
    {
       cin>>m;
       long long int t=1;
       double v=1;

       for(int s=1;s<=m;s++)
       {
           v+=log10((double) s);

        }
        cout<<(int)v<<endl;
    }
    return 0;
}

法二:

#include <cstdio>

#include <cmath>

using namespace std;

const double pi = 3.1415926;



int main()

{

	int t, n;

	scanf("%d", &t);

	for(int i=0; i<t; ++i)

	{

		scanf("%d", &n);

		int len = ceil((n*log((double)n)-n+log(2.0*(double)n*pi)/2.0)/log(10.0));

		if(!len)

			len++;

		printf("%d\n", len);

	}



	return 0;

}
发布了2 篇原创文章 · 获赞 1 · 访问量 236

猜你喜欢

转载自blog.csdn.net/qq_44301515/article/details/97939978
HD