Guten Abend an alle,
Ich mochte Fakultetsfunktion rekursiv berechne das ist ja leicht aber ich möchte das meine rekursive Funktion eine Arrey mit bestimmte lenge übergegeben bekommt die funktion berechnet rekursiv Fakultet von alle zahlen die in Array stehen, dann speichert züruckt und schickt wieder zurück. leider ich weiss nicht wie die Werte von Array ablese berechne und wieder Speichere.
Bitte hillft mir
Danke schon im voraus
das ist meine Code.
Java:
importjava.util.Scanner;publicclassFactorialFacMain{publicstaticvoidmain(String[]args){Scanner scan =newScanner(System.in);FactorialFac fac =newFactorialFac();int lenge;System.out.println("Wie gros soll ein Array sein?");
lenge = scan.nextInt();long[] myAr =newlong[lenge];for(int i =0; i < myAr.length; i++){System.out.println((i +1)+" te: Wert Eingeben");
myAr[i]= scan.nextLong();// Die werte in Array Speichern.}}}publicclassFactorialFac{int n;publicintrecFactorial(int n){if(n ==0)return n =1;else{return n *recFactorial(n -1);}}}
Wäre es bei deinem jetzigen Stand nicht einfacher nach dem Einlesen einfach über das Array mit den Zahlen zu iterieren, von jedem Wert die Fakultät mit deiner recFactorial(int n) Methode berechnen zu lassen und den Wert wieder in einem neuen Array zu speichern?
Java:
publicstaticvoidmain(String[] args){long[] nums =..long[] numFactorial =...;// Zahlen einlesenfor(int i =0; i < nums.length; i++)
numFactorial[i]=recFactorial(..);// ggf. Array ausgeben lassen}
Als erstes frage ich mich warum du eine extra interne Klasse erstellst?
Um die Idee umzusetzen musst du folgenden Pseudo Code umsetzen:
Code:
Erstelle ein Array mit den zu berechnenden Fakultäten
Erstelle noch ein Array wo die Fakultäten gespeichert werden
Dann gehe in einer for Schleife alle Elemente des ersten Arrays durch
Bilde die Fakultät und speicher sie im zweiten Array
Rückgabe des zweiten Arrays
Es ist nicht notwendig ein zweites Array zu erstellen, wenn du das erste Array nicht mehr bauchst.
Was meinst du mit interne Klasse?
Ich stelle mir so vor, ich habe viele Klassen mit verschiedene Methoden und habe ich nur eine Klasse mit ein mein Methode. Wo ich die Methoden von Andere Klassen abrufen kann.
In arrey Zahlen speichern mache ich mit for schleife, aber wenn ich die werte Auslesen und wieder zurück
mit for schleifen speichern, wie kombiniere ich dann mit meine Rekursive Method ?
// arrays anlegenlong[] nums =...;long[] factorials =newlong[nums.length];// Du bekommst die einzelnen Werte eines Arrays indem du über es iterierst:for(int i =0; i < nums.length; i++){// die Werte brechnest du dann mit deiner recFactorial-Methode und// speicherst die Werte dann in dem Array.
factorials[i]=recFactorial(nums[i]);}// Ausgeben lassen kannst du dir das Array auch mit einer for-Schleife.
Wäre es bei deinem jetzigen Stand nicht einfacher nach dem Einlesen einfach über das Array mit den Zahlen zu iterieren, von jedem Wert die Fakultät mit deiner recFactorial(int n) Methode berechnen zu lassen und den Wert wieder in einem neuen Array zu speichern?
Java:
publicstaticvoidmain(String[] args){long[] nums =..long[] numFactorial =...;// Zahlen einlesenfor(int i =0; i < nums.length; i++)
numFactorial[i]=recFactorial(..);// ggf. Array ausgeben lassen}
Ich habe nicht ganz verstanden, Meinst du dass, ich sofort beim Array berechnete Werte speichern? es wird ja vielleicht leicht aber, es geht nicht um Leichtigkeit sondern ich möchte wissen wie ich das Array in eine rekursive Methode übergebe berechne und weider zurück bekomme.
Mit for schleife ist da relativ leichter und habe ich entschieden einfach mit rekursiv zu machen und weill ich diese Kapitel über Rekursion bearbeite. http://chortle.ccsu.edu/java5/Notes/chap72/ch72_1.html
Herzlichen dank an beiden, Ich mache, wie Robat mir empfält hat.
Das ist keine innere Klasse sondern nur 2 Klassen in ein [code=Java]..[/code] Tag gepackt. Der Compiler würde an dieser Stelle gar keine innere Klasse zulassen, da die - wie du an der Klammerung siehst - die "äußere" Klasse schon geschlossen ist