MulaiMulai sekarang secara gratis

Cara mengkueri faktorial dari 6 secara rekursif

Pada latihan sebelumnya, Anda mengkueri faktorial 5! dengan solusi iteratif. Sekarang, Anda akan menghitung 6! secara rekursif. Kita memecah masalah menjadi masalah-masalah lebih kecil dengan tipe yang sama untuk mendefinisikan faktorial n! secara rekursif. Untuk itu, definisi berikut dapat digunakan:

  • 0! = 1 untuk step = 0
  • (n+1)! = n! * (step+1) untuk step > 0

Dengan definisi sederhana ini, Anda dapat menghitung faktorial dari setiap bilangan. Pada latihan ini, n! direpresentasikan oleh factorial.

Anda akan memanfaatkan definisi di atas dengan bantuan CTE rekursif.

Latihan ini adalah bagian dari kursus

Kueri Hierarkis dan Rekursif di SQL Server

Lihat Kursus

Petunjuk latihan

  • Inisialisasi kolom factorial dan step ke 1.
  • Hitung bagian rekursif dengan factorial * (step + 1).
  • Hentikan proses rekursi ketika nilai iterasi saat ini lebih kecil daripada bilangan faktorial target.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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;
Edit dan Jalankan Kode