ZAMYLA: புரிந்து கொள்ள வேண்டும் மறுநிகழ்வு, நீங்கள் வேண்டும் முதல் மறுநிகழ்வு புரிந்து. திட்டம் வடிவமைப்பு என்றால் மறுநிகழ்வு கொண்ட நீங்கள் சுய குறிப்புடன் வேண்டும் என்று வரையறைகள். சுழல்நிலை தரவு கட்டமைப்புகள், உதாரணமாக, தரவு கட்டமைப்புகள் உள்ளன என்று தங்களை அடங்கும் தங்கள் வரையறைகளுக்கு. ஆனால் இன்று, நாம் கவனம் செலுத்த போகிறோம் சுழல்நிலை செயல்பாடுகளை. , செயல்பாடுகளை உள்ளீடுகள் எடுத்து அந்த நினைவு வாதங்கள், மற்றும் ஒரு மதிப்பை திரும்ப தங்கள் குறிப்பிடப்படுகின்றன வெளியீடு இங்கே இந்த வரைபடம். நாம் உடல் என பெட்டியில் யோசிக்க வேண்டும் தொகுப்பு கொண்ட செயல்பாடு, விளக்குவது என்று அறிவுறுத்தல்கள் உள்ளீடு மற்றும் வெளியீடு வழங்கும். உடல் உள்ளே ஒரு நெருங்கி செயல்பாடு அழைப்புகள் வெளிப்படுத்த முடியும் மற்ற செயல்பாடுகள். இந்த எளிய செயல்பாடு, foo, எடுத்து என்று உள்ளீடு ஒரு சரம் எடுத்து அச்சிட்டு எப்படி பல கடிதங்கள் சரம் உள்ளது. சரம் நீளம் செயல்பாடு strlen, அதன் வெளிப்பாடு தான், என்று அழைக்கப்படுகிறது printf செய்ய அழைப்பு தேவைப்படுகிறது. இப்போது, என்ன ஒரு சுழல்நிலை செயல்பாடு உள்ளது சிறப்பு அது தன்னை அழைக்கும் என்று ஆகிறது. நாம் இந்த சுழல்நிலை பிரதிநிதித்துவம் முடியும் இந்த ஆரஞ்சு அம்பு அழைப்பு மீண்டும் தன்னை தேடுகிறது. ஆனால் மீண்டும் தன்னை இயக்கும் மட்டுமே சாப்பிடுவேன் மற்றொரு சுழல்நிலை அழைப்பை, மற்றொரு மற்றொரு. ஆனால் சுழல்நிலை செயல்பாடுகளை முடிவிலியாக இருக்க முடியாது. அவர்கள் எப்படியோ நிறுத்த வேண்டும், அல்லது உங்கள் திட்டம் எப்போதும் இயக்கும். எனவே நாம் உடைக்க ஒரு வழி கண்டுபிடிக்க வேண்டும் சுழல்நிலை அழைப்புகள் வெளியே. நாம் அடிப்படை வழக்கில் இந்த அழைக்கிறோம். அடிப்படை வழக்கில் நிபந்தனை போது, செயல்பாடு இல்லாமல் கொடுக்கிறது மற்றொரு சுழல்நிலை அழைப்பு. ஒரு வெற்றிடத்தை செயல்பாடு Hi, இந்த செயல்பாடு எடுத்து என்று உள்ளீடு ஒரு முழு எண்ணாக n எடுக்கிறது. அடிப்படை வழக்கில் முதல் வருகிறது. N குறைவான பூஜ்யம், அச்சு பை மற்றும் ஆகிறது என்றால் அனைத்து மற்ற நேரங்களில் திரும்ப, செயல்பாடு அதிக அச்சிட மற்றும் இயக்க சுழல்நிலை அழைப்பு. விழாவில் அதிக மற்றொரு அழைப்பு ஒரு decremented உள்ளீடு மதிப்பு. இப்போது, நாம், அதிக அச்சிட கூட செயல்பாடு நிறுத்த முடியாது நாம் வரை அதன் திரும்ப வகை திரும்ப, இந்த வழக்கில் வெற்றிடத்தை. எனவே ஒவ்வொரு N அடிப்படை வழக்கில் விட வேறு, இந்த செயல்பாடு ஹாய் ஹாய் வரும் n, கழித்தல் 1. இந்த செயல்பாடு என்றாலும் வெற்றிடத்தை என்பதால், நாங்கள் வெளிப்படையாக இங்கே திரும்பி தட்டச்சு முடியாது. நாம் வெறும் செயல்பாடு இயக்க வேண்டும். எனவே அதிக அழைப்பு (3) அதிக அச்சிட மற்றும் அதிக (2) (1) ஒரு வணக்கம் முடிக்கிறது இயக்க அதிக முடிக்கிறது (0), அங்கு அடிப்படை வழக்கில் நிபந்தனை. எனவே அதிக (0) பாய் அச்சிடுகிறது மற்றும் வருமானத்தை. சரி. எனவே இப்போது நாம் அடிப்படைகளை புரிந்து கொள்ள வேண்டும் என்று அவர்கள் வேண்டும் என்று சுழல்நிலை செயல்பாடுகளை, குறைந்தது ஒரு அடிப்படை வழக்கில், அதே போல் ஒரு சுழல்நிலை அழைப்பு, ஒரு செல்ல அனுமதி அர்த்தமுள்ள உதாரணம். தான் திரும்ப முடியாது என்று ஒரு என்ன களைவதற்கு. தான் சார்ந்த ஒரு பார்க்கலாம் அறுவை சிகிச்சை மிகவும் பொதுவாக பயன்படுத்தப்படும் நிகழ்தகவு கணக்கீடுகள். N, காரணியாலான ஒவ்வொரு தயாரிப்பு ஆகிறது விட, நேர்மறை முழு குறைவாக மற்றும் n சமமாக. எனவே காரணியாலான ஐந்து 5 முறை 4 முறை ஆகிறது 3 முறை 2 முறை 1 120 கொடுக்க. நான்கு காரணியாலான 4 முறை 3 முறை ஆகிறது 2 முறை 1 24 கொடுக்க. அதே விதி பொருந்தும் எந்த நேர்மறை முழு. நாம் எப்படி ஒரு சுழல்நிலை எழுத வேண்டும் காரணியாலான கணக்கிட்டு அந்த செயல்பாடு பல? சரி, நாம் இருவரும் அடையாளம் வேண்டும் அடிப்படை வழக்கு மற்றும் சுழல்நிலை அழைப்பு. சுழல்நிலை அழைப்பு அதே இருக்கும் அடிப்படை தவிர அனைத்து வழக்குகள் வழக்கு, நாம் வேண்டும் என்று அர்த்தம் எங்களுக்கு கொடுக்க வேண்டும் என்று ஒரு முறை பார்க்கலாம் எங்கள் விரும்பிய முடிவு. இந்த உதாரணமாக, எப்படி 5 காரணியாலான பார்க்க 1 2 3 4 பெருக்குவதன் ஈடுபட்டிருக்கிறது மற்றும் அதே பெருக்கல் , இங்கே காணப்படுகிறது 4 காரணியாலான வரையறை. எனவே, நாங்கள் 5 காரணியாலான என்று பார்க்கிறோம் வெறும் 5 முறை 4 காரணியாலான. இப்போது இந்த முறை பொருந்தும் 4 அதே காரணியாலான? ஆமாம். நாம் 4 காரணியாலான கொண்டுள்ளது என்று பார்க்க பெருக்கல் 3 முறை 2 முறை 1, 3 காரணியாலான அதே வரையறை. எனவே 4 காரணியாலான 4 முறை 3 சமமாக இருக்கும் காரணியாலான, மற்றும் பல மற்றும் முன்னும் பின்னுமாக எங்கள் முறை 1 காரணியாலான, வரை குச்சிகள் வரையறை 1 சமமாக இருக்கும். வேறு எந்த சாதகமான உள்ளது முழு விட்டு. எனவே நாம் முன்மாதிரியாக வேண்டும் எங்கள் சுழல்நிலை அழைப்பு. N காரணியாலான n முறை சமமாக இருக்கும் n, காரணியாலான கழித்தல் 1. எங்கள் அடிப்படை வழக்கு? அது தான் எங்கள் வரையறை இருக்க வேண்டும் 1 காரணி. எனவே இப்போது நாம் எழுதும் செல்ல முடியும் விழாவிற்கு குறியீடு. அடிப்படை வழக்கில், நாம் வேண்டும் நிலை N சமமாக 1, சமப்படுத்தி நாம் 1 தருகிறேன். பின்னர் சுழல்நிலை அழைப்பு மீது நகரும், நாம் n முறை திரும்ப வேண்டும் n, காரணியாலான கழித்தல் 1. இப்போது இந்த எங்கள் சோதனை செய்யலாம். தான் சார்ந்த 4 முயற்சி செய்வோம். நமது செயல்பாடு ஒன்றுக்கு அது சமமாக தான் 4 முறை காரணியாலான (3). (3) காரணியாலான சமமாக இருக்கிறது 3 முறை காரணியாலான (2). பாக்டோரியல் (2) 2 முறை சமமாக இருக்கும் காரணியாலான (1), இது 1 கொடுக்கிறது. பாக்டோரியல் (2) இப்போது 2 முறை 1, 2 கொடுக்கிறது. (3) காரணியாலான இப்போது திரும்ப முடியும் 3 முறை 2, 6. இறுதியாக, காரணியாலான (4) 4 முறை 6, 24 கொடுக்கிறது. நீங்கள் எந்த சிரமம் சந்திக்காமல் என்றால் சுழல்நிலை அழைப்பு, என்று பாசாங்கு செயல்பாடு ஏற்கனவே வேலை. என்ன நான் இந்த அர்த்தம் இருக்கிறது நீங்கள் வேண்டும் என்று திரும்ப உங்கள் சுழல்நிலை அழைப்புகளை நம்ப வலது மதிப்புகள். உதாரணமாக, எனக்கு தெரியும் என்று காரணியாலான (5) 5 முறை சமம் காரணியாலான (4), நான் அந்த நம்பிக்கையை போகிறேன் காரணியாலான (4) என்னை 24 கொடுக்கும். நீங்கள், ஒரு மாறி என நினைக்கிறேன் , நீங்கள் ஏற்கனவே வரையறுக்கப்பட்ட போல் காரணியாலான (4). எனவே எந்த காரணியாலான (N), அது தான் n, தயாரிப்பு மற்றும் முந்தைய காரணியாலான. இந்த முந்தைய காரணியாலான அழைப்பு மூலம் பெறப்படுகிறது n, காரணியாலான கழித்தல் 1. நீங்கள் செயல்படுத்த முடியும் என்றால், இப்போது, பார்க்க ஒரு சுழல்நிலை விழாவில் உங்களை. உங்கள் முனையம் வரை ஏற்ற, அல்லது run.cs50.net, மற்றும் ஒரு செயல்பாடு தொகை எழுத என்று ஒரு முழு N எடுக்கிறது மற்றும் திரும்புகிறார் அனைத்து தொடர்ச்சியான நேர்மறை தொகை N இருந்து 1 முழு. நான் சில தொகைகள் எழுதி உங்களுக்கு உதவ மதிப்புகள் எங்கள். முதல், கண்டுபிடிக்க அடிப்படை வழக்கில் நிபந்தனை. பின்னர், தொகை பாருங்கள் (5). நீங்கள் அடிப்படையில் அதை வெளிப்படுத்த முடியும் மற்றொரு தொகை? இப்போது, என்ன தொகை பற்றி (4) எப்படி நீங்கள் தொகை வெளிப்படுத்த முடியும் (4) மற்றொரு தொகை அடிப்படையில்? நீங்கள் தொகை வேண்டும் (5) மற்றும் தொகை (4) மற்ற பணத்தை வகையிலேயே வெளிப்படுத்தப்படுகிறது, பார்க்க நீங்கள் ஒரு அடையாளம் என்றால் தொகை (N) முறை. இல்லை என்றால், ஒரு சில எண்கள் முயற்சி தங்கள் பணத்தை வெளிப்படுத்த மற்றொரு எண்கள் அடிப்படையில். தனி முறைகள் அடையாளம் எண்கள், நீங்கள் உங்கள் வழியில் நன்றாக இருக்கும் எந்த n வடிவத்தை அடையாளம். மறுசுழற்சி ஒரு மிகவும் சக்திவாய்ந்த கருவி தான், எனவே நிச்சயமாக அது மட்டுமே இல்லை கணித செயல்பாடுகளை. மறுசுழற்சி மிகவும் திறம்பட பயன்படுத்த முடியும் உதாரணமாக மரங்கள் கையாளும் போது. ஒரு மரம் குறுகிய பாருங்கள் மேலும் முழுமையான ஆய்வு, ஆனால் இப்போது , என்று பைனரி தேடல் மரம் நினைவு குறிப்பாக, ஒவ்வொரு, முனைகளில் செய்யப்பட்டது ஒரு மதிப்பு மற்றும் இரண்டு முனை சுட்டிகள். பொதுவாக, இந்த குறிப்பிடப்படுகின்றன ஒரு வரியில் சுட்டி கொண்ட பெற்றோர் முனை இடது குழந்தை முனை மற்றும் ஒரு வலது குழந்தை முனை. ஒரு பைனரி தேடல் கட்டமைப்பு மரம் தன்னை வைக்கிறது ஒரு சுழல்நிலை தேடல். சுழல்நிலை அழைப்பு ஒன்று கடக்கிறது இடது அல்லது வலது முனை, ஆனால் மேலும் மரம் குறுகிய என்று. நீங்கள் ஒரு அறுவை சிகிச்சை செய்ய வேண்டும் என்று ஒரு பைனரி மரம் ஒவ்வொரு கணு. நீங்கள் எப்படி போகலாம்? சரி, நீங்கள் ஒரு சுழல்நிலை எழுத முடியும் அறுவை சிகிச்சை செய்கிறது என்று செயல்பாடு பெற்றோர் முனை மற்றும் ஒரு சுழல்நிலை செய்கிறது அதே செயல்பாடு அழைக்க, இடது கடந்து செல்லும் மற்றும் வலது குழந்தை முனைகள். உதாரணமாக, இந்த செயல்பாடு, foo, என்று ஒரு குறிப்பிட்ட முனை மதிப்பு மற்றும் மாற்றங்கள் 1 தனது குழந்தைகளை அனைத்து. ஒரு பூஜ்ய முனை காரணங்கள் அடிப்படை வழக்கில் செயல்பாடு என்பதை, திரும்ப எந்த முனைகள் இல்லை என்று என்று துணை மரம் விட்டு. அது வழியாக நடந்து செல்லலாம். முதல் பெற்றோர் 13 ஆகிறது. நாம் 1 மதிப்பை மாற்ற, பின்னர் அழைக்க எங்கள் இடது செயல்பாடு நன்கு வலது என. செயல்பாடு, foo, இடது என்று அழைக்கப்படுகிறது முதல் துணை மரம், அதனால் இடது முனை 1 மற்றும் foo மறு ஒதுக்கீடு வேண்டும் என்று அந்த முனை குழந்தைகள் என்று, முதல் இடது மற்றும் வலது, அதனால் மற்றும் முன்னும் பின்னுமாக. மற்றும் கிளைகள் இல்லை என்று சொல்ல இன்னும் குழந்தைகள் அதே செயல்முறை வலது குழந்தைகள் தொடரும் முழு மரத்தின் முனைகள் வரை 1 மறு ஒதுக்கீடு. நீங்கள் பார்க்க முடியும் என, நீங்கள் மட்டுமே அல்ல ஒரே ஒரு சுழல்நிலை அழைப்பு. வேலை செய்து வேண்டும் என நான் பல. நீங்கள் ஒரு மரம் இருந்தது என்ன என்றால், அங்கு ஒவ்வொரு முனை மூன்று குழந்தைகள், இடது, நடுத்தர, மற்றும் சரியான? எப்படி நீங்கள் foo திருத்த முடியும்? சரி, எளிய. மற்றொரு சுழல்நிலை அழைப்பு சேர்த்து மத்திய முனை சுட்டிக்காட்டி உள்ள கடக்க. மறுசுழற்சி மிகவும் சக்தி வாய்ந்த மற்றும் அல்ல நேர்த்தியான குறிப்பிட, ஆனால் அது ஒரு இருக்க முடியும் முதலில் கடினம் கருத்து, அப்படி இருக்க நோயாளி மற்றும் உங்கள் நேரம். அடிப்படை வழக்கில் தொடங்கும். இது வழக்கமாக அடையாளம் எளிதான விஷயம், பின்னர் நீங்கள் வேலை செய்ய முடியும் பின்னோக்கி அங்கு இருந்து. நீங்கள் அடைய வேண்டும் என்று உங்கள் அடிப்படை வழக்கில், அதனால் வலிமையை நீங்கள் ஒரு சில குறிப்புகளை கொடுக்கும். ஒரு குறிப்பிட்ட வழக்கில் வெளிப்படுத்த முயற்சி மற்ற நேரங்களில் அடிப்படையில், அல்லது துணை செட். இந்த குறுகிய பார்த்து நன்றி. மிகவும் குறைந்தது, இப்போது நீங்கள் இது போன்ற நகைச்சுவைகளை புரிந்து. என் பெயர் Zamyla உள்ளது, மற்றும் இந்த CS50 உள்ளது. Hi, இந்த செயல்பாடு எடுத்து, ஒரு எடுக்கும் என்று வெற்றிடத்தை விழா ஒரு முழு எண்ணாக, N, உள்ளீடு. அடிப்படை வழக்கில் முதல் வருகிறது. N குறைவான 0, அச்சு ஆகிறது என்றால் "பை" மற்றும் மீண்டும்.