Java :: Aufgabe #36
14 Lösungen

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
Lösungen:

/* * Code written by Oppa Hansi, oppahansi on Pastebin. */ import java.util.Scanner; public class Faculty { // Methode zur Berechnung der Fakultät von n. n beliebig. public static int faculty(int n) { // 1. Eine Hilfsvariable zur Speicherung des Ergebnisses // 2. if-Abfrage zur Ermittlung des Sonderfalls n = 0. // 3. else if-Abfrage ob n > 0 ist // 4. Wenn n < 0 ist, wird bei else n in eine positive Zahl // Umgewandelt. int result = 1; if(n == 0){ result = 1; }else if(n > 0){ for(int i = 1; i <= n; i++){ result = result*i; } }else{ n = n*-1; for(int i = 1; i <= n; i++){ result = result*i; } } return result; } public static void main(String[] args) { // Variable, um eine beliebige Zahl für n zu speichern. int n; // Scanner zum einlesen der Eingabe des Benutzers Scanner s = new Scanner(System.in); // Ausgabe, Einlesen der Zahl und Aufruf der faculty()-Methode. System.out.println("Berechnen der Fakultät von n."); System.out.println("Gebe eine beliebige ganze Zahl für n ein:"); n = s.nextInt(); System.out.println("Fakultät von " + n + ": " + faculty(n)); } }

import java.io.*; public class fakultaet { public static long factorial(int a){ long result = 1; for(int i = 1; i<=a;i++){ result = result*i; } return result; } public static void main(String args[])throws IOException{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); boolean correct; int number = 0; do{ correct = true; System.out.println("Enter a number"); try{ number = Integer.parseInt(in.readLine()); }catch(Exception e){ System.out.println("No floating-point numbers"); correct = false; } }while(correct==false); System.out.println("Factorial of "+number+" is: "+factorial(number)); } }

public class faculty { int _fac; public faculty(int fac) { _fac = fac; } public int nonRek() { int fak = 1; if(_fac == 0 || _fac == 1) { return 1; } else { for(int i=1; i<=_fac; i++) { fak *= i; } return fak; } }
Und JUnit-Test:

import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class facTest { faculty fak0 = new faculty(1); faculty fak1 = new faculty(1); faculty fak2 = new faculty(2); faculty fak3 = new faculty(3); faculty fak4 = new faculty(4); faculty fak5 = new faculty(5); faculty fak6 = new faculty(6); faculty fak7 = new faculty(7); faculty fak8 = new faculty(8); faculty fak9 = new faculty(9); faculty fak10 = new faculty(10); @Test public void nonRekPositiv() { assertEquals("Wrong!", 1, fak0.nonRek()); assertEquals("Wrong!", 1, fak1.nonRek()); assertEquals("Wrong!", 2, fak2.nonRek()); assertEquals("Wrong!", 6, fak3.nonRek()); assertEquals("Wrong!", 24, fak4.nonRek()); assertEquals("Wrong!", 120, fak5.nonRek()); assertEquals("Wrong!", 720, fak6.nonRek()); assertEquals("Wrong!", 5040, fak7.nonRek()); assertEquals("Wrong!", 40320, fak8.nonRek()); assertEquals("Wrong!", 362880, fak9.nonRek()); assertEquals("Wrong!", 3628800, fak10.nonRek()); }

import java.util.Scanner; /** * Created by Zer0 on 23.11.2014. */ public class FakultätRechner { public static void main(String[] args) { Scanner Input = new Scanner(System.in); System.out.println("Geben Sie eine beliebige ganze Zahl ein, ich berechne für Sie die Fakultät" + " dieser Zahl."); long result = Input.nextLong(); if (result==0) { System.out.println("Die Fakultät von 0 ist 1."); } else { System.out.print("Die Fakultät von "+result+" ist "); for(long i=result-1 ; i>=1 ; i--) { result = result*i; } System.out.println(result+"."); } } }

import java.util.Scanner; public class Fakultät{ public static void main(String[] args) { long fak = 0; long i = 0; long result = 1; Scanner Input = new Scanner(System.in); System.out.print("Fakultät von n: "); fak = Input.nextLong(); if(fak != 0){ for(i = 1; i <= fak; i++){ result *= i; } }else{ System.out.println("Ungültige Eingabe"); } System.out.println(result); } }

/** * @author ElPapito * @date 08.05.2015 */ import java.util.Scanner; public class FakultaetVonNBerechnen { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Fakultaet von n: "); int n = scanner.nextInt(); scanner.close(); int fakultaet = 1; for (int i = 2; i <= n; i++) { fakultaet = fakultaet * i; } System.out.println(fakultaet); } }

import java.util.Scanner; public class Fakultät { public long fakultät(long fakultät){ int m = 1; for(int n = 1; n <= fakultät; n++){ m *= n; } return m; } public static void main(String... arg){ Fakultät f = new Fakultät(); Scanner scan = new Scanner(System.in); System.out.println("Geben Sie die Zahl ein, deren Fakultät berrechntet werden soll: "); int zahl = scan.nextInt(); scan.close(); System.out.printf("Fakultät von %s: %s", zahl, f.fakultät(zahl)); } }

import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n, i = 1; long fak = 1; Scanner s = new Scanner(System.in); System.out.println("Zahl eingeben: "); n = s.nextInt(); for (; i <= n; i++) { fak = (n * (n + 1)) / 2; } System.out.printf("Die Fakultät der Zahl %d ist: %d", n, fak); } }

import java.util.Scanner; public class faculty { public static void main(String[] args) { int n; long z = 1; Scanner sc = new Scanner(System.in); n = sc.nextInt(); System.out.println("Fakultät von n = " + n); do { z = z * n; n = n-1; } while (n>0); System.out.println(z); } }

class fakultaet { public static void main (String[] args) throws java.lang.Exception { int n = 10; int ergebnis = 1; for(int i = n; i > 0; i--) { ergebnis = ergebnis * i; } System.out.println("Fakultät von n: " + n + "\n" + ergebnis); } }

package de.exception.fakultaet_36; public class Fakultaet { public static int Calc(int n) { if(n == 1) { return 1; } return n * Fakultaet.Calc(n - 1); } }

package de.exception.fakultaet_36; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; class TestFakultaet { @Test void test() { assertEquals(1, Fakultaet.Calc(1)); assertEquals(2, Fakultaet.Calc(2)); assertEquals(6, Fakultaet.Calc(3)); assertEquals(24, Fakultaet.Calc(4)); assertEquals(120, Fakultaet.Calc(5)); assertEquals(3628800, Fakultaet.Calc(10)); } }
Anmerkung: Ich arbeite mit dem Programm BlueJ
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"); } }

import java.util.*; public class fakultät { public static void main (String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Fakultät von n:\t"); int zahl = scanner.nextInt(); fakultaet(zahl); scanner.close(); } public static void fakultaet(int zahl) { int res = 1; for(int durchgang = 2; durchgang <=zahl; durchgang++) { res *= durchgang; } System.out.print(res); } }

public class Fakultaet { public static void main(String[] args) { System.out.println(berechneFakultaet(5)); } public static int berechneFakultaet(int n) { if (n <= 1) { return 1; } return berechneFakultaet(n - 1) * n; } }