PowerShell v2 +, 85 79 69 बाइट्स
param($n)$b=1,1;2..$n|%{$b+=$b[$_-$b[$_-1]]+$b[$_-$b[$_-2]]};$b[$n-1]
इनपुट लेता है $n
, $b
एक सरणी सेट करता है @(1, 1)
, फिर से एक लूप में प्रवेश करता है 2 .. $n
। प्रत्येक पुनरावृत्ति हम $b
एक सरल +=
और अनुक्रम की परिभाषा के साथ अनुक्रम में नवीनतम गणना से निपटते हैं। हम तब से उपयुक्त संख्या का उत्पादन करते हैं $b
( -1
क्योंकि PowerShell में सरणियाँ शून्य-अनुक्रमित हैं)। यह काम करता $n
है 1
या नहीं, 2
क्योंकि यह दोनों मूल्य $b
शुरू से ही कम सूचकांकों में पहले से आबाद हैं , इसलिए भले ही कबाड़ पर लूप टिक जाए, लेकिन इसे वैसे भी नजरअंदाज कर दिया जाता है।
पुनरावर्ती समाधान 78 76 बाइट्स
$a={param($k)if($k-lt3){1}else{(&$a($k-(&$a($k-1))))+(&$a($k-(&$a($k-2))))}}
पहली बार मैंने जवाब के रूप में एक लंबोदर के बराबर का उपयोग किया है, जैसा कि आमतौर पर एक पुनरावृत्त समाधान कम होता है (जैसा कि आप सभी नेस्टेड पेरेन्स से देख सकते हैं)। लेकिन, इस मामले में, नेस्टेड पेरेस को नेस्टेड सरणी कॉल के साथ पुनरावृत्त समाधान में लगभग डुप्लिकेट किया गया है, इसलिए पुनरावर्ती समाधान कम है। नहींं, पुनरावृत्ति समाधान वास्तव में छोटा है (ऊपर देखें)।
इसे निष्पादन-ऑपरेटर के माध्यम से कॉल करें, जैसे &$a 20
। बस सीधे-सीधे पुनरावर्ती कॉल।