HH_jing 2023-04-10 19:20 采纳率: 0%
浏览 21

求解答一下这个数列和非正负数列编写时区别在哪里

如下图所示,题目要求填写空缺程序。非空缺部分已经了解,但空缺成分不是很会做,希望得到指点

img

  • 写回答

3条回答 默认 最新

  • a5156520 2023-04-10 20:01
    关注

    区别应该在于每一项有符号位,分子和分母三个部分组成的不同。

    然后具体实现可以用循环控制计算的次数,再在循环中分别计算每一项分子,分母的值,然后结合符号位计算出当前项数列的值,再把当前项数列的值累加到和中,循环结束则可计算出数列的和。

    代码如下:

    #include <stdio.h>
    
    double fun(int n,double x){
        
        //printf("fun\n");
        double s=1;  // 将数列初始化为第一项的值 
        double numerator=1;   // 分子 
        double denominator=1;  // 分母 
        double single;  // 临时存储数列每一项的值 
        int i;
        int flag=-1;  // 符号位 
         
        for(i=2;i<=n;i++){  // 从数列第二项开始计算到指定项 
            
            numerator*=x;   // 分子为x的次方 
            denominator*=(i-1); // 分母为 (当前项数-1 )的阶乘 
            single = flag*numerator/ denominator;  // 数列的每一项为符号位乘以分子再除以分母 
            
            s+=single;  // 把数列当前项的值累加到和中 
            flag*=-1;  // 符号位变化 
            //printf("i=%d,分子=%.2lf,分母=%.2lf,当前项=%.2lf,s=%.2lf\n",i,denominator,numerator,single,s);
            
        }    
        
        return s;  // 返回数列和 
    } 
    
    int main(void){
        
        int n;
        double x,s;
        scanf("%d %lf",&n,&x);
    //    printf("n=%d,x=%lf\n",n,x); 
        s=fun(n,x);
        printf("%lf\n",s);
        return 0;
    }
    
    

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月10日