01იგივე ამოცანის პატარა ასლი
რეკურსიული ფუნქცია ამოცანას ხსნის საკუთარი თავის უფრო პატარა შემავალ მონაცემებზე გამოძახებით. ყოველ რეკურსიულ ფუნქციას ორი ნაწილი აქვს:
- საბაზისო შემთხვევა: იმდენად პატარა შემავალი მონაცემები, რომ პასუხი პირდაპირ ცნობილია.
fact(1) = 1. - რეკურსიული შემთხვევა: ამოცანას ვამცირებთ და ვაერთიანებთ.
fact(n) = n × fact(n−1).
წარმოიდგინე ჩადგმული ყუთები: fact(4) შეიცავს fact(3)-ის გამოძახებას, ის fact(2)-ს და ასე fact(1)-მდე, რომელიც მაშინვე პასუხობს. შემდეგ პასუხები გარეთ ბრუნდება: 1, 2, 6, 24.
ხრიკი ისაა, რომ ენდო პატარა გამოძახებას. როცა წერ n × fact(n−1)-ს, ჩათვალე, რომ fact(n−1) უკვე მუშაობს, და იკითხე მხოლოდ: ჩემი ბიჯი მის პასუხს ჩემს პასუხად აქცევს?