<c语言求一百以内的偶数积-知识百科-龙咔百科
> 知识百科 > 列表
c语言求一百以内的偶数积
时间:2024-12-23 19:16:26
答案

先分析问题,求n(n>=2)以内的偶数积,既2*4*6*8*...=2^(n/2)*(1*2*3*...*n/2)=2^(n/2)*(n/2)!

当n比较小的时候可以循环求阶乘:

double fun(int n)

{

    double i=1.0;

    double ret=1.0;

    int key = n/2;

    for(i=1.0;i< key ;i+=1.0)

    {

        ret *=2*i;

    }

    return ret;

}

当n比较大的时候,阶乘结果是可以近似斯特灵公式,即使在n很小的时候,斯特灵公式的取值已经十分准确。

所以

double fun(int n)

{

    double pi = 3.1415926;

    double e = 2.718281828;

    int key = n/2;

    double ret = 1.0;

    ret = pow(2,key)*sqrt(2*pi*key)*pow(key/e,key);

    return ret;

}

计算机只是帮助我们解决问题的工具,怎样利用好这个工具才是王道,遇到问题的时候,不能一下子就想着完全的编程,而是分析问题,简化问题,最高效率的利用资源。

重在方法

推荐
© 2024 龙咔百科