PowerShell v2 +, 85 79 69 byte
param($n)$b=1,1;2..$n|%{$b+=$b[$_-$b[$_-1]]+$b[$_-$b[$_-2]]};$b[$n-1]
Mengambil input $n, menetapkan $bmenjadi array @(1, 1), lalu memasukkan loop dari 2 .. $n. Setiap iterasi kami tempelkan ke $bperhitungan terbaru dalam urutan dengan sederhana +=dan definisi urutan. Kami kemudian mengeluarkan nomor yang sesuai dari $b(dengan -1array karena di PowerShell diindeks nol). Ini berfungsi jika $nada 1atau 2karena kedua nilai tersebut telah diisi sebelumnya ke dalam indeks yang lebih rendah $bsejak awal, jadi meskipun loop diack pada junk, toh diabaikan.
Solusi rekursif 78 76 byte
$a={param($k)if($k-lt3){1}else{(&$a($k-(&$a($k-1))))+(&$a($k-(&$a($k-2))))}}
Pertama kali saya menggunakan jawaban yang setara dengan lambda, karena biasanya solusi berulang lebih pendek (seperti yang Anda lihat dari semua parenting bersarang). Tetapi, dalam kasus ini, parested bersarang hampir digandakan dalam solusi iteratif dengan panggilan array bersarang, sehingga solusi rekursif lebih pendek. Tidak, solusi berulang memang lebih pendek (lihat di atas).
Sebut saja melalui operator eksekusi, seperti &$a 20. Hanya panggilan rekursif langsung.