Eulersche Zahl

Informatikanfänger12

Aktives Mitglied
Ich will die eulersche Zahl über die Reihe berechnen. Dabei soll die Grenze der Reihe als Kommandozeilenparameter eingelesen werden.
Meine Lösung:

Java:
public class EulerscheZahl {
   
   
    public static void main (String[] args) {
        int grenze =1;
        grenze=Integer.parseInt(args[0]);
       
       
        double fak=1;
        double erg=1;
       
       
        for(int i=1; i<= grenze; i++) {
            fak*=i;
            erg= erg + (1/fak);
        }
       
       
       
        System.out.println(erg);
    }

}


In Eclipse funktioniert das, jedoch bekomme ich in dem von meiner Uni bereitgestellten Toll folgenden Fehler:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

Woher kommt das?
 
Hi also die Reihendarstellung der e-Funktion ist:
Summe aus 1/k!, wobei k! die Fakultät von k meint, das sieht bei dir jetzt erstmal richtig aus.

Zur Fehlermeldung: Die Fehlermeldung kommt beispielsweise wenn man ein Array der Größe 10 hat und versucht sich einen 11 Wert ausgeben zu lassen.

Ich weiß jetzt nicht was das für ein Tool ist, aber gibts du dem Tool auch den Parameter an
Code:
java programm_name -parameter
 
Zuletzt bearbeitet:
Dein Array args ist einfach leer.
Das args Array enthält die Kommandozeilenargumente die du übergibst. Scheinbar gibst du keine Parameter beim starten an.
 
Ich habe mich verlesen. Man muss die Zahl als Grenze eingeben 🙁

Tut mir leid, so funktioniert es auch im Uni-Tool:

Java:
import java.io.*;
public class EulerscheZahl {
   
   
   
   
    public static void main (String[] args) throws IOException {
    BufferedReader ein = new BufferedReader(new InputStreamReader (System.in));
    int grenze = Integer.parseInt(ein.readLine());
   
       
       
        double fak=1;
        double erg=1;
       
       
        for(int i=1; i<= grenze; i++) {
            fak*=i;
            erg= erg + (1/fak);
        }
       
       
        System.out.println(erg);
   
    }

}
 

Zurück
Oben