2018年全国多校算法寒假训练营练习比赛(第三场) -A不凡的夫夫【附详尽的代码注释和斯特林公式介绍以及推导过程】
2018-02-07 17:33
441 查看
链接: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
思路解析:这题不需要让计算机算n的阶乘是多少(因为当n非常大时,会很慢),我们可以使用斯特林公式,直接一下就出来了。
先看代码吧,看不懂的话后面有介绍斯特林公式和用斯特林公式求位数的推导过程的PPT:
PPT下载链接:https://pan.baidu.com/s/1nw16rUx
以下是PPT内容:
第一张:
第二张:
第三张:
来源:牛客网
题目描述
夫夫有一天对一个数有多少位数感兴趣,但是他又不想跟凡夫俗子一样,
所以他想知道给一个整数n,求n!的在8进制下的位数是多少位。
输入描述:
第一行是一个整数t(0<t<=1000000)(表示t组数据)
接下来t行,每一行有一个整数n(0<=n<=10000000)
输出描述:
输出n!在8进制下的位数。
示例1
输入
3
4
2
5
输出
2
1
3
思路解析:这题不需要让计算机算n的阶乘是多少(因为当n非常大时,会很慢),我们可以使用斯特林公式,直接一下就出来了。
先看代码吧,看不懂的话后面有介绍斯特林公式和用斯特林公式求位数的推导过程的PPT:
#include<bits/stdc++.h> //万能头文件,包含了目前c++所包含的所有头文件 using namespace std; const double PI=acos(-1),e=exp(1); /* acos()是反余弦函数,cosπ = -1,所以π = acos(-1) 在函数exp(x)中,x就是次方数,这个函数结果相当于e^x 这两个函数均在,cmath中。(cmath是c++语言中的库函数, 其中的c表示函数是来自c标准库的函数,math为数学常用库函数。) */ #define ll long long //定义ll就是long long int main() { //cout<<fixed<<setprecision(90)<<PI<<endl<<e;//测试PI和e的值 ll t,n,ans; scanf("%lld",&t);//因为流输入和输出在数值比较大的情况下比较慢, //所以推荐使用scanf函数进行输入,否则将造成时间超限 while(t--) { scanf("%lld",&n); if(n==0) { cout<<1<<'\n';//这里就一种情况,而且数值比较小,因此可以使用流输出。 continue; } //cout<<log(8)/log(2);//这就是在C语言中表示以二为底,八的对数,其中二是底数,八是真数。如果这点儿不清楚,可以参考我写的ppt或百度“对数”看下定义。 ans=(int)((log(2.0*PI*n)/2.0+n*log(n/e))/log(8));//先强制转换成int, printf("%lld\n",ans+1);//别忘最后加1哦! } }
PPT下载链接:https://pan.baidu.com/s/1nw16rUx
以下是PPT内容:
第一张:
第二张:
第三张:
相关文章推荐
- 牛客网NowCoder 2018年全国多校算法寒假训练营练习比赛(第三场)A.不凡的夫夫(斯特林公式) D.小牛vs小客 E.进击吧!阶乘(大数Java) G.大水题(数学)
- 2018年全国多校算法寒假训练营练习比赛(第三场)A 不凡的夫夫【斯特林公式】
- 2018年全国多校算法寒假训练营练习比赛(第三场)- A - 不凡的夫夫(斯特林公式)
- 2018年全国多校算法寒假训练营练习比赛(第三场)不凡的夫夫(斯特林公式)
- A-不凡的夫夫——2018年全国多校算法寒假训练营练习比赛(第三场)
- 2018年全国多校算法寒假训练营练习比赛(第三场)题解 A-不凡的夫夫(斯特林定理的应用)
- 斯特林公式-Stirling公式(取N阶乘近似值)-HDU1018-Big Number 牛客网NowCoder 2018年全国多校算法寒假训练营练习比赛(第三场)A.不凡的夫夫
- 2018年全国多校算法寒假训练营练习比赛(第三场)E---进击吧!阶乘(Java代码,另附Java解决大数问题的模板)
- 2018年全国多校算法寒假训练营练习比赛(第三场)A-斯特林公式
- 牛客网 2018年全国多校算法寒假训练营练习比赛(第三场) A 不凡的夫夫(斯特灵公式)
- 2018年全国多校算法寒假训练营练习比赛(第三场)---E---题(大数阶乘(模板题)c++/java/py)
- 2018年全国多校算法寒假训练营练习比赛(第三场)E-进击吧!阶乘(大数问题)
- 2018年全国多校算法寒假训练营练习比赛(第三场)---F---题(博弈)
- 2018年全国多校算法寒假训练营练习比赛(第三场)G-大水题(容斥原理)
- 2018年全国多校算法寒假训练营练习比赛(第三场) B 一个小问题【CRT 扩展中国剩余定理 板子题】
- 2018年全国多校算法寒假训练营练习比赛(第三场)-H-向左走(极角排序)
- 2018年全国多校算法寒假训练营练习比赛(第三场)H 向左走【极角排序】
- 2018年全国多校算法寒假训练营练习比赛(第二场) A.不凡的夫夫
- 牛客网 2018年全国多校算法寒假训练营练习比赛(第三场) 题解
- 2018年全国多校算法寒假训练营练习比赛(第三场)A