# Programmcode Eulersche Zahl



## Willi1990 (6. Feb 2010)

Hallo zusammen,
ich bin Java-Anfänger und habe folgendes Problem:

Ich muss die Eulersche Zahl mit folgender Formel näherungsweise bestimmen:
e = sum = 1 + 1 + 1\(1*2) + 1\(1*2*3) + 1\(1*2*3*4) + 1\(1*2*3*...n)

a) Wie lautet die Java Implementierung iterativ (ohne Rekursion)?
und
b) Wie lautet die Java Implementierung rekursiv? (Iteration verwenden erlaubt)?

Könnt ihr mir da vielleicht weiterhelfen?

Viele Grüße,
Willi


----------



## AmunRa (6. Feb 2010)

iterativ 


int e=0;
int h=0;
for (int i=1;i< (eineGrenze die du wählst);i++)
{
    h=1
    for(int j=1;j<=i;j++){
        h*=j;
   }
    e+=1/h;
}


Für die Rekursion musst du nur noch schaun welche von den 2 Schleifen du am Einfachsten durch eine Rekursion ersetzt


----------



## Ziegenpeter (6. Feb 2010)

Da haben sich ein paar Fehler bei AmunRa eingeschlichen. Ich verbesser das mal grad:


```
private double fak_iter(int n){
       double fak = 1;
       for( ; n > 1; fak *= n--);
       return fak;
}

private double fak_rek(int n){
       if(n == 0) return 1;
       else return n*fak_rek(n-1);
}

private double Euler(){
        double e = 0;
	for (int i = 0; i < 100; i++) {
		e += 1 / fak_rek(i);  //Iterativ: Einfach fak_rek(i) durch fak_iter(i) ersetzen
	}
        return e;
}
```


----------

