Java :: Aufgabe #36 :: Lösung #13

14 Lösungen Lösungen öffentlich
#36

Fakultät von n berechnen

Anfänger - Java von Dome - 03.01.2013 um 01:39 Uhr
Schreiben Sie ein Programm, oder eine Funktion, die die Fakultät einer beliebigen Zahl berechnet ohne eine vorhandene Funktion aus der Programmbibliothek zu verwenden.

Konsolenausgabe:

Fakultät von n: 10
3628800
#13
vote_ok
von nOrdan (1160 Punkte) - 04.06.2019 um 23:57 Uhr
Anmerkung: Ich arbeite mit dem Programm BlueJ

Quellcode ausblenden Java-Code


import Methodensammlung.Methoden;

/**
 * Die Fakultät von Ganzzahlen bis inklusive 34 kann berechnet werden
 * 
 * @author (nOrdan) 
 * @version (04.06.2019)
 */
public class Fakultät
{

    Methoden m = new Methoden();

    public static void main(String [] args)
    {
        Fakultät f = new Fakultät();
        f.inputs();
    }

    private void inputs()
    {
        boolean valid1 = false;
        int n = 0;
        while (valid1 == false)
        {
            String input1 = m.userInput("Geben sie die Zahl ein, für welche die Fakultät berechnet werden soll");
            m.errorUserInput(input1);
            try
            {
                n = m.parseInt(input1);
                valid1 = true;
            }
            catch(Exception e)
            {
                m.errorMessage("Invalid user input","Input error");
            }
        }
        berechnung(n);
    }

    private void berechnung(int n)
    {
        float ergebnis = 1f;
        if (n == 0)
        {
            
        }
        else if (n > 0)
        {
            for (int i = 1; i < n; i++)
            {
                ergebnis += ergebnis * i;
            }
        }
        else if (n >= 35)
        {
            m.errorMessage("Die Fakultät von 35 ist zu groß für das Programm","Size busy");
        }
        else
        {
            n = n * -1;
            for (int i = 1; i <= n; i++)
            {
                ergebnis = ergebnis * i;
            }
        }
        m.informationMessage("Die Fakultät von " + n + " ist " + ergebnis,"Ergebnis");
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben