рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!
рдЖрдЬ рд╣рдо EcmaScript рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд░ рдЕрдкрдирд╛ рд╢реЛрдз рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- рд╢реБрджреНрдз рдХрд╛рд░реНрдп, рд▓рдВрдмреЛрджрд░, рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛
- рд░рдЪрдирд╛, рдХрд░реА, рдЖрдВрд╢рд┐рдХ рдЖрд╡реЗрджрди
рдкреНрд░рддреНрдпрд╛рд╡рд░реНрддрди
рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╣рдореЗрдВ рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ:
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ - рдЗрд╕ рд╡рд╕реНрддреБ рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛, рд╡рд┐рд╡рд░рдг, рдЫрд╡рд┐ рдпрд╛ рд╕реНрд╡рдпрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЕрд░реНрдерд╛рдд рд╡рд╣ рд╕реНрдерд┐рддрд┐ рдЬрдм рд╡рд╕реНрддреБ рд╕реНрд╡рдпрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддреА рд╣реИред рд╢рдмреНрдж "рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐" рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреНрдЮрд╛рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рднрд╛рд╖рд╛рд╡рд┐рдЬреНрдЮрд╛рди рд╕реЗ рддрд░реНрдХ рддрдХ, рд▓реЗрдХрд┐рди рдЧрдгрд┐рдд рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЖрд╡реЗрджрди рдкрд╛рддрд╛ рд╣реИред
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдЙрди
рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛
рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рд╢рд░реАрд░ рдореЗрдВ рдЦреБрдж рдХреЛ рдЖрд╣реНрд╡рд╛рди рдХрд░рддреЗ рд╣реИрдВ ред рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрдИ рдЕрдирд┐рд╡рд╛рд░реНрдп рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ:
- рдЯрд░реНрдорд┐рдирд▓ рд╕реНрдерд┐рддрд┐ - рд╕рдорд╛рдкреНрддрд┐ рдХреА рд╕реНрдерд┐рддрд┐
- рдирд┐рдпрдо рдЬреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдЧрд╣рд░рд╛ рдЪрд▓рддрд╛ рд╣реИ
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рддрдереНрдпрд╛рддреНрдордХ рдЧрдгрдирд╛ред
const factorial = (n) => { if (n === 0) { return 1; } return n * factorial(n - 1); }
рд╣рдо рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдШрдЯрдХреЛрдВ рдХреЛ рднреЗрдж рдХрд░рддреЗ рд╣реИрдВред рдЯрд░реНрдорд┐рдирд▓ рдХреА рд╕реНрдерд┐рддрд┐
if (n === 0) { return 1; }
рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдирд┐рдпрдо
return n * factorial(n - 1);
рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдкреБрдирд░рд╛рд╡рд░реНрддрди рдЬреЗрдПрд╕ рдХреА рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рддрдХрдиреАрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдмрд╣реБрдд рдЖрдо рд╣реИред
рдкреБрдирд░рд╛рд╡рд░реНрддреА рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЗрдЦреА рд╣реИ:
const factorial = (n) => { if (n === 0) { return 1; } return n * factorial(n - 1); }
рддрдереНрдпрд╛рддреНрдордХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕рдорд╛рдзрд╛рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
const factorial = (n) => { const iter = (counter, acc) => { if (counter === 1) { return acc; } return iter(counter - 1, counter * acc); }; return iter(n, 1); };
рдпреЗ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реИрдВред рджреЛрдиреЛрдВ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддрди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ: рдЯрд░реНрдорд┐рдирд▓ рд╕реНрдерд┐рддрд┐ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдЧрддрд┐ рдХрд╛ рдирд┐рдпрдоред рдЖрдЗрдП рдЙрдирдХреЗ рдЕрдВрддрд░реЛрдВ рдХреЛ рджреЗрдЦреЗрдВред
рд╣рд░ рдХрджрдо рдкрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдпрд╛рдж рдХрд░рддреА рд╣реИред рдЬрд┐рд╕реЗ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рддрд╛рдкреАрдп рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд╣ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рд╕рднреА рдпрд╛рдж рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдВред рдЬрдм рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдлреИрдХреНрдЯрд░рд┐рдпрд▓ 6 рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреА рд╣реИ, рддреЛ рдЙрд╕реЗ 5 рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ рдЧрд┐рдирд╛ рдЬрд╛ рд╕рдХреЗ, рдЬрдм рдЖрдк рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдФрд░ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рд╣рдо рдЕрдЧрд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдХреЙрд▓ рдХреЗ рдмрд╛рд╣рд░, рдпреЗ рдпрд╛рдж рдХрд┐рдП рдЧрдП рдирдВрдмрд░ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВред
рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
factorial(3);
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдЧрдгрдирд╛ рдХреЛ рдЕрдВрдд рддрдХ рд╕реНрдердЧрд┐рдд рдХрд░рдирд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛
рдПрдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдмрд╛рд╣рд░ "рдХрд╣реАрдВ" рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ рдХрд┐
рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ
, рд╣рдордиреЗ рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ рдФрд░ рд░рд╛рдЬреНрдп рдХреА рдХрдореА рдХреЗ рдорд╣рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереАред рдПрдХ рд╕реНрдерд┐рддрд┐ рд╣реЛрдиреЗ рд╕реЗ рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд▓рдирд╛ рд╣рдореЗрд╢рд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░рд╛рдЬреНрдпреЛрдВ
рдореЗрдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд╣ рд╕рдм рдХреБрдЫ рдорд╛рдирддреА рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рд╣реИред
рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
iter(3, 1);
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрдо рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдмрдирд╛рддреЗ рд╕рдордп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХрдорд╛рддреНрд░ рдЕрдкрд╡рд╛рдж: рдпрджрд┐ рд╣рдо рдерд░реНрдорд▓ рд╕реНрдерд┐рддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рддрдХ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреЗрдбрд╝ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐
рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдкреЗрдбрд╝ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдШреГрдгрд┐рдд, рдЬрдЯрд┐рд▓ рдФрд░ рдирд╢реНрд╡рд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╖рдореНрдп рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рднреА рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдПрдХ рдкреЗрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрдВрд╕рд╛рди рдХреА рд╕реЛрдЪ рднреА рдПрдХ рдкреЗрдбрд╝ рдХреА рддрд░рд╣ рд╣реИред
рдкреЗрдбрд╝ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрджрд╛рд╣рд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рд╕рдВрдЦреНрдпрд╛ред
рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рд╕рдВрдЦреНрдпрд╛рдПрдВ - рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЕрдиреБрдХреНрд░рдо рдХреЗ рддрддреНрд╡ 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4341, 6765, 10946ред 17711, ... (OEIS рдореЗрдВ рдЕрдиреБрдХреНрд░рдо A000045), рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рджреЛ рд╕рдВрдЦреНрдпрд╛рдПрдБ 1 рдФрд░ 1, рдпрд╛ 0 рдФрд░ 1 рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЛ рдкрд┐рдЫрд▓реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдпреЛрдЧ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдкреАрд╕рд╛ рдХреЗ рдордзреНрдпрдпреБрдЧреАрди рдЧрдгрд┐рддрдЬреНрдЮ рд▓рд┐рдпреЛрдирд╛рд░реНрдбреЛ (рдЬрд┐рд╕реЗ рдлрд┐рдмреЛрдирд╛рдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЗ рдирд╛рдо рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ, рдЗрд╕ рдХреНрд░рдо рдХрд╛ рд╡рд░реНрдгрди (рдФрд░ рдШреЛрд╖рдгрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╡рд░реНрдгрди рд╣реИ) рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
fib(n) = [ 0 n = 0,//(1) 1 n = 1,//(2) fib(n-1) + fib(n-2) ]
рдЕрдм рдЧрдгрд┐рдд рд╕реЗ рддрд╛рд░реНрдХрд┐рдХ рддрд░реНрдХ рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реИрдВ (рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдЬрд┐рдХ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред рдлрд╝рд╛рдЗрдм (5) рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдлрд╝рд╛рдЗрдм (4) рдФрд░ рдлрд╝рд╛рдЗрдм (3) рдХреА рдЧрдгрдирд╛ рдХрд░рдиреА рд╣реЛрдЧреАред рдлрд╝рд╛рдЗрдм (4) рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдлрд╝рд╛рдЗрдм (3) рдФрд░ рдлрд╝рд╛рдЗрдм (2) рдХреА рдЧрдгрдирд╛ рдХрд░рдиреА рд╣реЛрдЧреАред рдлрд╝рд╛рдЗрдм (3) рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЧрдгрд┐рддреАрдп рдореЙрдбрд▓ рдореЗрдВ рдЬреНрдЮрд╛рдд рдорд╛рдиреЛрдВ (1) рдФрд░ (2) рддрдХ рдлрд╝рд╛рдЗрдмрд░ (2) рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреА рд╣реЛрдЧреАред
рд╣рдорд╛рд░реЗ рддрд░реНрдХ рд╣рдореЗрдВ рдХрд┐рди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдВ? рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╣рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдерд░реНрдорд▓ рд╕реНрдерд┐рддрд┐ рдХреЛ n <= 1. рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рдПрдХ рд╢рд╛рдЦрд╛ рдХреЗ рдмрдЬрд╛рдп (рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ), рд╣рдорд╛рд░реА рджреЛ рд╢рд╛рдЦрд╛рдПрдБ рд╣реЛрдВрдЧреА: рдлрд╝рд╛рдЗрдм (n-1), рдлрд╝рд╛рдЗрдмрд░ (n-2)ред
const fib = (n) => (n <= 1 ? n : fib(n - 1) + fib(n - 2));
рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдЗрдирд╕ рд╣реИ! рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ n рдХреЗ рдХрдИ рдмрд╛рд░ рдПрдХ рд╣реА рдореВрд▓реНрдп рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХ рд╣реИ рдЬрд┐рд╕реЗ
рдореЗрдореЛрдЗрдЬрд╝реЗрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рд░рд┐рдХрд░реНрд╕рд┐рдпрди рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЯреВрд▓ рд╣реИред рдореБрдЭреЗ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рд╣реИ рдХрд┐, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдЬрдм рд╣рдо рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдо рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред