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

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

kursunun bir parçasıdır
Kursu Görüntüle

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ı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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