LoslegenKostenlos loslegen

So fragst du die Fakultät von 6 rekursiv ab

In der letzten Übung hast du die Fakultät 5! mit einer iterativen Lösung berechnet. Jetzt berechnest du 6! rekursiv. Wir zerlegen das Problem in kleinere Probleme desselben Typs, um die Fakultät n! rekursiv zu definieren. Dafür kann folgende Definition verwendet werden:

  • 0! = 1 für step = 0
  • (n+1)! = n! * (step+1) für step > 0

Mit dieser einfachen Definition kannst du die Fakultät jeder Zahl berechnen. In dieser Übung wird n! durch factorial dargestellt.

Du nutzt die obige Definition mithilfe eines rekursiven CTE.

Diese Übung ist Teil des Kurses

Hierarchische und rekursive Abfragen in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere die Felder factorial und step mit 1.
  • Berechne den rekursiven Teil mit factorial * (step + 1).
  • Beende die Rekursion, wenn der aktuelle Iterationswert kleiner als die gewünschte Fakultätszahl ist.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

WITH calculate_factorial AS (
	SELECT 
		-- Initialize step and the factorial number      
      	___ AS step,
        ___ AS factorial
	UNION ALL
	SELECT 
	 	step + 1,
		-- Calculate the recursive part by n!*(n+1)
	    ___ * (step + 1)
	FROM calculate_factorial        
	-- Stop the recursion reaching the wanted factorial number
	WHERE step < ___)
    
SELECT factorial 
FROM calculate_factorial;
Code bearbeiten und ausführen