BaşlayınÜcretsiz başlayın

6'nın faktöriyelini özyinelemeli olarak nasıl sorgularsın

Son egzersizde, 5! ifadesini yinelemeli (iterative) bir çözümle sorguladın. Şimdi 6! değerini özyinelemeli (recursive) olarak hesaplayacaksın. Faktöriyel n! değerini özyinelemeli tanımlamak için problemi aynı türden daha küçük problemlere indirgeriz. Bunun için şu tanımı kullanabiliriz:

  • step = 0 için 0! = 1
  • step > 0 için (n+1)! = n! * (step+1)

Bu basit tanımla her sayının faktöriyelini hesaplayabilirsin. Bu egzersizde n!, factorial ile temsil ediliyor.

Yukarıdaki tanımı özyinelemeli bir CTE yardımıyla kullanacaksın.

Bu egzersiz, kursun bir parçasıdır

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Kursa Göz Atın

Egzersiz talimatları

  • factorial ve step alanlarını 1 ile başlat.
  • Özyinelemeli kısmı factorial * (step + 1) ile hesapla.
  • Mevcut yineleme değeri hedef faktöriyel sayısından küçük olduğunda özyineleme sürecini durdur.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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;
Kodu Düzenle ve Çalıştır