题目链接---A-不凡的夫夫
题目描述
夫夫有一天对一个数有多少位数感兴趣,但是他又不想跟凡夫俗子一样,
所以他想知道给一个整数n,求n!的在8进制下的位数是多少位。
所以他想知道给一个整数n,求n!的在8进制下的位数是多少位。
输入描述:
第一行是一个整数t(0<t<=1000000)(表示t组数据) 接下来t行,每一行有一个整数n(0<=n<=10000000)
输出描述:
输出n!在8进制下的位数。
注意:由于数据比较大,在输入和输出时不要使用cin和cout否则时间会超限,我做的时候就是因为
用了输入流cin和输出流cout导致运行超时了
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
#define e 2.7182818285
#define pi acos(-1.0)
#define ll long long int
using namespace std;
int main()
{
ll n;
int t;
double temp=log(8);
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
int ans;
if(n==0||n==1)
printf("%d\n",1);
else
{
ans=((log(2.0*pi*n)/2.0)+n*log(n/e))/temp+1;
printf("%lld\n",ans);
}
}
return 0;
}