斯特林公式

今天早上由于卡特兰数太大是不会求。。
取膜的数也很大,用卢卡斯也不好做
于是就想有没有更快的求阶乘
偶然间发现了这个
由于知识水平不够,于是没看懂证明。。
但结论还是看懂了
不想贴图,https://baike.baidu.com/item/%E6%96%AF%E7%89%B9%E6%9E%97%E5%85%AC%E5%BC%8F/9583086?fr=aladdin

然后我试着写了一发。。发现近似是挺近似的,但在5的时候误差就大于1了。。
这样根本就求不出卡特兰数啊。。
那就来骗一波访问量吧

#include<cstdio>
#include<cmath>
double e=2.7182818284;
double ooo (double x,int y)
{
    double a=1;
    for (int u=1;u<=y;u++) a*=x;
    return a;
}
int main()
{
    double n;
    scanf("%lf",&n);
    printf("%lf",sqrt(2*M_PI*n)*ooo(n/exp(1),(int)n));
    return 0;
}

同时他还能弄出阶乘有多少位。。不知道算不算一个推导啦
反正证明我也没看懂

#include<cstdio>
#include<cmath>
int main()
{
    int n;
    scanf("%d",&n);
    if (n==1) printf("1");
    else printf("%d\n",(int)(((log10((long double)2*M_PI*n))/2+n*log10((long double)n/exp(1)))+1));
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值