牛客网 2018年全国多校算法寒假训练营练习比赛(第三场)A.不凡的夫夫-Stirling(斯特林)公式 取N阶乘近似值...

 

2018年全国多校算法寒假训练营练习比赛(第三场)

A.不凡的夫夫
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
链接: https://www.nowcoder.net/acm/contest/75/A
来源:牛客网

题目描述

夫夫有一天对一个数有多少位数感兴趣,但是他又不想跟凡夫俗子一样,
所以他想知道给一个整数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语言版的太长不想写。。。

补题补题,天坑还未补。。。

太垃圾了,我怎么这么菜啊。

 

 

 

转载于:https://www.cnblogs.com/ZERO-/p/9711201.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值