PowerShell v2 +, 85 79 69 byte
param($n)$b=1,1;2..$n|%{$b+=$b[$_-$b[$_-1]]+$b[$_-$b[$_-2]]};$b[$n-1]
Lấy đầu vào $n, đặt $bthành một mảng @(1, 1), sau đó nhập một vòng lặp từ 2 .. $n. Mỗi lần lặp chúng ta $bxử lý phép tính mới nhất trong chuỗi với một +=định nghĩa đơn giản và định nghĩa của chuỗi. Sau đó, chúng tôi xuất số thích hợp từ $b(với một -1vì các mảng trong PowerShell không được lập chỉ mục). Công trình này nếu $nđược 1hoặc 2vì cả hai trong những giá trị được trước được điền vào các chỉ số thấp hơn $btừ khi bắt đầu, vì vậy ngay cả khi đinh vòng lặp trên rác, nó bỏ qua anyway.
Giải pháp đệ quy 78 76 byte
$a={param($k)if($k-lt3){1}else{(&$a($k-(&$a($k-1))))+(&$a($k-(&$a($k-2))))}}
Lần đầu tiên tôi đã sử dụng tương đương với lambda làm câu trả lời, vì thông thường, một giải pháp lặp lại ngắn hơn (như bạn có thể thấy từ tất cả các parens lồng nhau). Nhưng, trong trường hợp này, các parens lồng nhau gần như được nhân đôi trong giải pháp lặp với các lệnh gọi mảng lồng nhau, vì vậy giải pháp đệ quy ngắn hơn. Không, giải pháp lặp lại thực sự ngắn hơn (xem ở trên).
Gọi nó thông qua toán tử thực thi, như &$a 20. Chỉ cần một cuộc gọi đệ quy thẳng lên.