2018年全国多校算法寒假训练营练习比赛(第三场)
A.不凡的夫夫
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
链接:
https://www.nowcoder.net/acm/contest/75/A
来源:牛客网
来源:牛客网
题目描述
夫夫有一天对一个数有多少位数感兴趣,但是他又不想跟凡夫俗子一样,
所以他想知道给一个整数n,求n!的在8进制下的位数是多少位。
所以他想知道给一个整数n,求n!的在8进制下的位数是多少位。
输入描述:
第一行是一个整数t(0<t<=1000000)(表示t组数据)
接下来t行,每一行有一个整数n(0<=n<=10000000)
输出描述:
输出n!在8进制下的位数。
示例1
输入
3 4 2 5
输出
2 1 3
代码:
1 //A-斯特林公式-求位数 2 #include<iostream> 3 #include<cstring> 4 #include<cstdio> 5 #include<cmath> 6 #include<algorithm> 7 #include<stack> 8 #include<map> 9 #include<vector> 10 #include<queue> 11 #include<set> 12 using namespace std; 13 const int inf=1<<30; 14 const int maxn=1e5+10; 15 const double eps=1e-6; 16 const int mod=1e9+7; 17 const double pi=acos(-1.0); 18 const double epx=1e-10; 19 const double e=exp(1); 20 typedef long long ll; 21 int l(int n){ 22 int s=1; 23 if(n>3) 24 s=(log(2*pi*n)/log(8))/2+n*(log(n/e)/log(8))+1; 25 return s; 26 } 27 int main(){ 28 int n,t; 29 scanf("%d",&t); 30 while(t--){ 31 scanf("%d",&n); 32 printf("%d\n",l(n)); 33 } 34 return 0; 35 }
最近一堆大数的题目写的头都炸了,java学的超级垃圾,c语言版的太长不想写。。。
补题补题,天坑还未补。。。
太垃圾了,我怎么这么菜啊。