Fungsi Rekursif Bagian 2
Termasuk bagian Logika dan Alur dalam perjalanan Python di Coddy. Pelajaran 61 dari 78.
Fungsi rekursif biasanya memiliki dua bagian:
- Kasus Dasar: Menentukan kapan rekursi harus berhenti.
- Langkah Rekursif: Memanggil fungsi itu sendiri dengan input yang lebih kecil.
Contoh: Menghitung faktorial menggunakan rekursi:
def factorial(n):
if n == 1: # Kasus dasar
return 1
return n * factorial(n - 1) # Pemanggilan rekursif
print(factorial(5)) # output: 120Di sini, fungsi terus memanggil dirinya sendiri dengan n - 1 sampai mencapai 1, tempat rekursi berhenti.
Contoh: Membalik string:
def recursive_reverse(s):
if len(s) <= 1: # Kasus dasar: string kosong atau satu karakter
return s
else:
return recursive_reverse(s[1:]) + s[0] # Langkah rekursif
text = "hello"
result = recursive_reverse(text)
print(result)
# Output: ollehDalam contoh ini, fungsi recursive_reverse memanggil dirinya sendiri dengan sisa string (s[1:]) hingga string kosong atau hanya memiliki satu karakter. Setiap pemanggilan menambahkan karakter pertama ke hasil pemanggilan rekursif, sehingga string terbalik.
Tantangan
MudahTulis fungsi rekursif bernama fibonacci yang menerima bilangan bulat positif n sebagai argumen dan mengembalikan bilangan Fibonacci ke-n. Urutan Fibonacci didefinisikan sebagai berikut:
fibonacci(1) = 0fibonacci(2) = 1fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)untukn > 2.
Contoh Input:
n = 6Contoh Output:
5Coba sendiri
def fibonacci(n):
# Tulis kodemu di siniPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Eksplorasi Variabel
KonstantaPenugasan Beberapa VariabelMenukar VariabelVariabel PenampungPembulatan AngkaKonversi ke list4Aplikasi Buku Kontak
Tampilkan MenuTambahkan Kontak7Set Bagian 2
Operasi Matematika Bagian 1Operasi Matematika Bagian 2Ulasan: Berburu Harta KarunSubset dan SupersetMelakukan Perulangan pada SetUlasan: Pelacak Turnamen10Dasar list comprehension
SintaksnyaMembuat list sederhanaMenambahkan kondisiMenggunakan agregasi dataRangkuman: Rumah ListRangkuman: Elemen Kebebasan13Sistem Manajemen Inventaris
Ikhtisar ProyekTambahkan Barang2dictionary Bagian 1
Apa Itu dictionary?Membuat dictionaryMengakses NilaiMengubah dictionaryRangkuman: Pengelola Resep5Pengambilan Keputusan Lanjutan
Operator TernaryPemeriksaan KeanggotaanPemeriksaan IdentitasError IndentasiRangkuman: Filter Liburan8Pengelola Data Siswa
Gambaran Umum ProyekTambah Siswa11Fungsi Lanjutan
Mengembalikan Beberapa NilaiFungsi Lambda Bagian 1Fungsi Lambda Bagian 2Tantangan Rekap: Pengurutan LambdaFungsi Rekursif Bagian 1Fungsi Rekursif Bagian 2Rekap: Menjumlahkan list Bersarang3dictionary Bagian 2
Method pada dictionarydictionary BersarangMemeriksa keyMenelusuri dictionary dengan perulanganRingkasan: Penghitung Frekuensi9Agregasi Data Lanjutan
Menggunakan SumMenemukan Nilai Minimum dan MaksimumMengurutkan Data dengan EfisienRangkuman: Pengurut dictionaryLatihan sendiri: Compiler Python online