Java Array Fakultät Function

Bobi

Bekanntes Mitglied
Hallo,
ich habe eine Fakultät Funktion geschrieben, welches als Eingabe ein Array bekommt und wird in Arry enthaltene Werte Fakultät berechnet. Danach wird das Array zurück gegeben. Ich will diese Funktion in andere Klasse aufrufen aber, wie Ihr schon ahnt es tritt call-by-value effect und ich bekomme gleiche Zahlen ohne, dass die Fakultät Funktion angewandt wird.
Meine Frage an Ihr wie kann ich dieses Problem umgehen?
Danke schön im Voraus

Java:
public class mainTest{

  public static void main(String[]args){
 
     long [] feld = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    
      factorial.iterFactorial(feld); // ich glaube hier habe ich auch eine Fehler
    
      for(int n = 0; n < feld.length; n++) {
          System.out.print("fak: " + (n + 1) +" = " +  feld[n] +"; ");
      }
  }
}

public class factorial {

public static long [] iterFactorial(long[] feld) {
  
    long[] output = new long[feld.length];
    
    for(int i = 0; i < feld.length; i++) {
      int product = 1;
      for ( int j=1; j <= feld[i]; j++ ) {
          product = product * j;
      }
       output[i] = product;
    }
    return output;
  }
 }
 
Zuletzt bearbeitet von einem Moderator:
Danke sehr Flown, es fünktioniert.
Könntest du auch mir hier helfen
Ich will das gleiche Problem Rekursiv losen, aber ich habe zu viele Warnungen von Eclipse.
Java:
public static long[] myFactorial(long[] feld) {
       
        long[] ausgabe = new long[feld.length];
       
        for(int i = 0; i < ausgabe.length; i++) {
            if(feld[i] == 0) {
                return 1;
            } else {
                feld[i] *  myFactorial(feld[i]- 1);   
                return ausgabe;
        }
    }
[java]
 
Naja du hast das hier mit zwei Rekursionen zu lösen. Einmal eine Methode die dir die Fakultät berechnet und die andere, damit dein Array befüllt wird. Für Hilfe, hab ich mal ein Rekursionstutorial geschrieben (HIER).
 

Neue Themen


Zurück
Oben