1 00:00:00,000 --> 00:00:03,110 >> დინამიკები 1: In, რომ გასულ მობილური sigma, მე ახორციელებს რა მინდა მოვუწოდო 2 00:00:03,110 --> 00:00:06,570 iterative გამოსავალი, რომლის დროსაც მე გამოიყენება forward loop ითვლიან up ყველა 3 00:00:06,570 --> 00:00:09,720 ნომერი 1 და მ, შემდეგ დაბრუნების თანხა. 4 00:00:09,720 --> 00:00:12,560 >> მაგრამ აღმოჩნდება, რომ ჩვენ შეგვიძლია გამოვიყენოთ სხვა ტექნიკა განახორციელოს იმავე 5 00:00:12,560 --> 00:00:15,120 ფუნქცია, ტექნიკა ცნობილია, როგორც უკან. 6 00:00:15,120 --> 00:00:19,360 რეკურსიული ფუნქცია, ასე ვთქვათ, უბრალოდ ერთი რომელიც მოუწოდებს თავად. 7 00:00:19,360 --> 00:00:21,290 ახლა, და თავისთავად, რომ შეიძლება იყოს პრობლემა. 8 00:00:21,290 --> 00:00:24,500 იმ შემთხვევაში, თუ ფუნქცია უბრალოდ მოუწოდებს თავად, რომელიც მოუწოდებს თავად რომელიც მოუწოდებს თავად, 9 00:00:24,500 --> 00:00:26,080 ეს პროცესი შეიძლება Bot ოდესმე დასრულდება. 10 00:00:26,080 --> 00:00:30,490 მაგრამ იმდენად, რამდენადაც ჩვენ მოიცავს ე.წ. ბაზის შემთხვევაში, მდგომარეობა, რომელიც უზრუნველყოფს 11 00:00:30,490 --> 00:00:34,930 რომ ზოგიერთ სიტუაციაში ჩვენ არ მოვუწოდებთ საკუთარ თავს, რომ პროცესი სხვაგვარად 12 00:00:34,930 --> 00:00:37,070 უსასრულო looping უნდა შეწყვიტოს. 13 00:00:37,070 --> 00:00:39,180 >> მოდით ახლა reimplement sigma ასეთია. 14 00:00:39,180 --> 00:00:43,810 თუ n ნაკლებია ან ტოლი 0, მე ვარ უბრალოდ, და გარკვეულწილად თვითნებურად, 15 00:00:43,810 --> 00:00:45,670 დაბრუნებას აპირებს 0. 16 00:00:45,670 --> 00:00:49,370 სხვაგან, რაც მე ვაპირებ ამის გაკეთებას რეალურად გამოთვლაც sigma პოზიტიური int 17 00:00:49,370 --> 00:00:50,460 რომ მე უკვე გადასცა. 18 00:00:50,460 --> 00:00:52,050 >> ახლა, რა არის sigma მ? 19 00:00:52,050 --> 00:00:55,480 ისე, sigma მ, რა თქმა უნდა, თანხა 1 მეშვეობით ტელ. 20 00:00:55,480 --> 00:00:58,820 მაგრამ თუ ჩვენ ვიფიქროთ, რომ სხვა გზა, ეს უბრალოდ თანხა m პლუს m 21 00:00:58,820 --> 00:01:02,560 მინუს 1 plus m მინუს 2 და ა.შ., ყველა გზა ქვემოთ 1. 22 00:01:02,560 --> 00:01:08,080 ასე რომ, ამ თვალსაზრისით, როგორც ჩანს, შემეძლო უბრალოდ დააბრუნოს m plus. 23 00:01:08,080 --> 00:01:10,210 >> და მერე უნდა m minus 1 plus m მინუს 2. 24 00:01:10,210 --> 00:01:13,470 მაგრამ აქვს ფუნქცია, რომ შეუძლია მე ზუსტად რომ პასუხი, კერძოდ, 25 00:01:13,470 --> 00:01:16,340 sigma მ მინუს 1. 26 00:01:16,340 --> 00:01:19,670 >> ახლა მოუწოდებენ თავს ამ გზით არ როგორც ჩანს, როგორც საუკეთესო იდეა. 27 00:01:19,670 --> 00:01:22,610 რადგან თუ sigma მოუწოდებს sigma რომელიც მოუწოდებს sigma რომელიც მოუწოდებს sigma, თქვენ 28 00:01:22,610 --> 00:01:24,480 ვფიქრობ, რომ ეს პროცესი შეიძლება არ ოდესმე დასრულდება. 29 00:01:24,480 --> 00:01:27,720 მაგრამ ეს რატომ გვქონდა ე.წ. ბაზა შემთხვევაში ზედა ამ ფუნქციას. 30 00:01:27,720 --> 00:01:31,540 თუ მდგომარეობა, რომელიც ამოწმებს, თუ მ ნაკლებია ან ტოლი 0 მე არ ვაპირებ 31 00:01:31,540 --> 00:01:32,610 მოვუწოდებთ თავს. 32 00:01:32,610 --> 00:01:37,010 მე ნაცვლად დაბრუნებას აპირებს 0, რომელიც თავის მხრივ უნდა დაემატოს 33 00:01:37,010 --> 00:01:39,950 წინა ციფრები, რომ მე უკვე შემაჯამებელი up, რითაც შეჩერების ამ 34 00:01:39,950 --> 00:01:41,740 წინააღმდეგ შემთხვევაში უსასრულო პროცესში. 35 00:01:41,740 --> 00:01:43,710 >> მოდით ახლა ვნახოთ, თუ ამ ახალი შესრულების სამუშაოები. 36 00:01:43,710 --> 00:01:46,510 გადავარჩინოთ, კომპილაციის, და აწარმოებს ამ პროგრამის. 37 00:01:46,510 --> 00:01:50,640 რათა sigma 1 dot slash sigma 1. 38 00:01:50,640 --> 00:01:52,900 და მოდით მიაწოდოს იგივე ნომრები, როგორც ადრე. 39 00:01:52,900 --> 00:01:55,520 2, რომელიც უნდა იმედია მომეცი 3. 40 00:01:55,520 --> 00:01:58,970 მოდით მიაწოდოს 3, რომელიც უნდა იმედია მომეცი 6. 41 00:01:58,970 --> 00:02:03,480 და მოდით საბოლოოდ მიაწოდოს 50, რომელიც მართლაც მაძლევს 1,275. 42 00:02:03,480 --> 00:02:06,130