Fakultät berechnen

MKrause

Mitglied
Vorab: Ich weiß zwar nicht ob Java für die Fakultät bereits von Haus aus eine Funktion mitliefert so dass ich mir das sparen könnte (bisher nichts gefunden), möchte aber trotzdessen versuchen es "manuell" zu lösen.

Ich habe derzeit folgenden Code:
Java:
import java.util.Scanner;
public class main {

	public static void main(String[] args) {
		 Scanner input = new Scanner(System.in);
		 int number;
		 int finnumber;
		 System.out.println("Please enter a number.");
		 number = input.nextInt();
		 finnumber = number;
		 while(number >= 1){
			 finnumber = finnumber * (number-1);
			 number = number-1;
		 }
		 System.out.println("Done: " + finnumber);
	}

}

Besagter Code gibt aber immer am Ende "Done: 0" aus, dh. bleibt die Variable finnumber (die eigentliche die Fakultät von number speichern sollte) auf 0. Habe bereits seit knapp einer halben Stunde Kopfzerbrechen und finde meinen Fehler einfach nicht. Kann mir jemand mal einen Ansatz geben? :bahnhof:
 
Beim Letzten Durchlauf der Schleife ist number == 1. Also wird die aktuelle finnumber mit 1-1 (Also 0) multipliziert. Darum Ergebnis: 0.
 
Das war es tatsächlich, danke. Die Bedingung in meiner while-Schleife (number >= 1) musste ich in number > 1 ändern, da die Schleife sonst noch ein letztes Mal ausgeführt wird und natürlich in Zeile 12 wieder eins abgezogen bekommt (entspricht dann 0), womit finnumber dann multipliziert wird.

Danke dir!
 

Zurück
Oben