语言:C;计算一系列递归和迭代

时间:2013-06-17 19:07:19

标签: c recursion series iteration

我目前正在为考试做准备,我偶然发现了以下任务:

计算系列(递归和迭代)1-(1/2)+(1/3) - (1/4)+(1/5)...(1 / n)。我总体上搜索了网页,特别是这个页面,但不幸的是我只找到了我不了解的基于java的解决方案。

所以,请帮帮我:)。

到目前为止我的最大努力只能得到答案" 1.00" : - /

这是我做的(全部):

#include <stdio.h>

float reihe_ite(int n); 
float reihe_rek(int n); 

int main(){
        float a,b;
        a=reihe_ite(5);
        b=reihe_rek(5);

        printf("\niterativ: %.2f\nrekursiv: %.2f", a, b); 

        return 0;
}

float reihe_ite(int n){ 
        int i;
        float x=0;
        for(i=1;i<=n;i++){
                if(i%2==0){
                        x=x-(1/i);
                }   
                else{
                        x=x+(1/i);
                }   
        }   
        return x;
}

float reihe_rek(int n){ 
        if(n==1)
                return 1;
        else{
                if(n%2==0){
                        return reihe_rek(n-1)-(1/n);
                }    

                else{
                        return reihe_rek(n-1)+(1/n);
                }   

        }   
}

1 个答案:

答案 0 :(得分:2)

x=x-(1/i);

1/i是一个整数除法。

使用:

   x=x-(1.0f/i);

代表float分部