hobingoding.com - Halo coders. Bilangan lucas merupakan serangkaian bilangan bulat yang mirip dengan deret fibonacci. Deret lucas dimulai dengan dua bilangan awal yaitu 2 dan 1, dan setiap bilangan berikutnya adalah jumlah dari dua bilangan sebelumnya. Sebagai contoh 5 deret bilangan lucas pertama adalah 2 1 3 4 7.
Permasalahan
Buatlah program untuk menampilkan barisan bilangan Lucas sebanyak n kemudian hitung totalnya.
Test Case
Input Panjang Barisan : 7
Barisan Bilangan Lucas : 2 1 3 4 7 11 18 29
Total : 75
Kode Program
print("Program Mencetak Barisan Bilangan Lucas")
print("visit us hobingoding.com")
print()
def lucas(x):
if(x == 0):
return(2)
if(x == 1):
return(1)
else:
return lucas(x-1) + lucas(x-2)
total = 0
# Input Panjang Barisan
panjang_barisan = int(input("Input Panjang Barisan : "))
# Barisan Bilangan Lucas
print("Barisan Bilangan Lucas :", end=" ")
for i in range(panjang_barisan + 1):
print(lucas(i), end=" ")
total += lucas(i)
print("\nTotal :", total)
Lihat source code melalui github: fandipres
Output Program
Penjelasan Program
Pada awal program saya membuat dua buah variabel yaitu total dan panjang barisan untuk menerima panjang dan total dari yang ingin dicetak. Nilai input tersebut saya konversikan menjadi integer dengan menggunakan fungsi int. Variabel tersebut kemudian saya pergunakan dalam perulangan sebagai batas perulangan yang ingin dilakukan.
Pada perulangan, masing-masing indeks perulangan dari tersebut saya kirimkan sebagai parameter terhadap fungsi lucas yang ada di bagian atas. Fungsi lucas di sini akan menerima input indeks perulangan dan akan diproses secara rekursif untuk membentuk pola bilangan lucas yang ada.
Setelah nilai tersebut diproses dari fungsi lucas saya kemudian menjumlahkan nilai hasil returnnya dalam variabel total untuk menghitung jumlah deret yang terbentuk saat ini. Terakhir masing-masing deret dan total saya cetak dengan menggunakan fungsi print terhadap indeks lucas(i) dan total.
Masih bingung atau punya pertanyaan lain? Feel free to ask me in comment section below guys.