0

私は現在、試験の準備をしようとしていますが、次の課題に出くわしました。

級数 (再帰的および反復的) 1-(1/2)+(1/3)-(1/4)+(1/5)...(1/n) を計算します。Web 全般、特にこのページを検索しましたが、残念ながら、理解できない 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);
                }   

        }   
}
4

1 に答える 1

2
x=x-(1/i);

1/i整数除算です。

使用する:

   x=x-(1.0f/i);

float部門のために

于 2013-06-17T19:09:45.547 に答える