1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Fakultät rekursiv programmieren

Discussion in 'Programmieren' started by GelbesBoot, Jan 6, 2014.

Thread Status:
Not open for further replies.
  1. Guten Abend,
    ich kenne mich noch nicht so gut mit Java aus, muss aber ein Hauptprogramm schreiben, in dem die Ergebnisse der
    Rekursion von n = 1 bis n = 12 ausgegeben werden. Das Hauptprogramm kann ich auch in meinen vorherigen Teil mit einbinden. In dem ersten Teil der Aufgabe sollte ich die Methode public static long fakultaet(int n)
    verwenden. Dies hab ich getan und läuft auch einwandfrei.


    Sieht dann so aus:
    Code:
    import java.io.*;
    
     
     public class Faki
    {
      public static long fakultaet(int n)
      {
        if (n == 0)
        return 1;
        else
        return n * fakultaet (n - 1);
      }
      
      public static void main (String args[])
      {
        int a = IO.readInt("Bitte geben Sie eine Zahl ein");
        IO.println(a + "! = " +fakultaet(a));
        
        
        
        
        
        
        System.out.println("Die Fakultaet von " + a + " ist " + fakultaet(a )); 
        
      }
      
      
    } 
    Leider macht mir der zweite Teil zuschaffen:confused:. Ich weiß nicht wie ich fortfahren muss, damit die Ergebnisse von 1 bis 12 ausgeben werden. Hab es schon mit der While-Schleife versucht, leider ohne erfolg.

    Eventuell gibt es jemanden der erfahrener ist und mir helfen mag.

    LG

    GelbesBoot
     
  2. Lvpvs

    Lvpvs Byte

    Moin moin,

    Ich kenne mich noch weniger (um nicht zu sagen gar nicht :-) ) mit Java aus und in C++ habe ich bislang nur 3 Stunden Erfahrung :-D aber möglicherweise bringt dich folgendes auf eine Idee:

    in C++:
    Code:
      #include <stdio.h>
    
      int fakultaet(int n)
      {
        if ( n == 1 )
          return  1;
        else
          return  n * fakultaet(n-1);
      }
    
      int main(void)
      {
        int m, n, a=12; // Habe deine Eingabevariable a hier einfach mal als 12 definiert
    
       [COLOR="#FF0000"] for ( n=1; n<=a; n++ )
          printf("n = %2d  n! = %10d\n", n, fakultaet(n));[/COLOR]
      }
    --> Eine for-Schleife von n=1 bis n<=a (a ist dein Variable die du eingibst), in der die Funktion aufgerufen und ausgegeben wird

    LG LG Lvpvs
     
    Last edited: Mar 17, 2014
  3. Ludwig93

    Ludwig93 ROM

    Du könntest die Ergebnisse in einer Variablen (Array oder Array-List) Zwischenspeichern
    oder du rufst die Ausgabemethode (IO.println) einfach direkt aus der Methode fakultaet() auf.

    Liebe Grüße
     
Thread Status:
Not open for further replies.

Share This Page