ZAMYLA: అర్థం చేయడానికి సూత్రం, మీరు తప్పక మొదటి సూత్రం అర్థం. కార్యక్రమం డిజైన్ మార్గాల లో సూత్రం కలిగి మీరు స్వయం నిర్దేశకం కలిగి నిర్వచనాలు. పునరావృత డేటా నిర్మాణాలు, ఉదాహరణకు, డేటా నిర్మాణాలు అని తాము ఉన్నాయి వారి నిర్వచనాలు. అయితే ఈ రోజు, మేము దృష్టి చూడాలని పునరావృత విధులు. , విధులు ఇన్పుట్లను పడుతుంది గుర్తుచేసుకున్నారు వాదనలు, మరియు ఒక విలువ తిరిగి వారి ద్వారా ప్రాతినిధ్యం అవుట్పుట్ ఇక్కడ ఈ చిత్రంలో. మేము శరీరం యొక్క బాక్స్ అనుకుంటున్నారో చేస్తాము సెట్ కలిగి ఫంక్షన్, అన్వయించుకుంటారు సూచనలను ఇన్పుట్ మరియు ఒక ఫలితాన్ని ప్రదర్శిస్తాయి. శరీరం లోపల ఒక సమీప వీక్షణ తీసుకొని ఫంక్షన్ కాల్స్ బహిర్గతం ఇతర విధులు అలాగే. ఈ సాధారణ ఫంక్షన్, foo, కేటాయించడం ఇన్పుట్ వంటి ఒక స్ట్రింగ్ తీసుకుని ప్రింట్లు ఎన్ని అక్షరాలు ఆ స్ట్రింగ్ ఉంది. స్ట్రింగ్ పొడవు కోసం ఫంక్షన్ strlen,, దీని అవుట్పుట్, అంటారు printf కాల్ కోసం అవసరం. ఇప్పుడు, ఏమి ఒక పునరావృత ఫంక్షన్ చేస్తుంది ప్రత్యేక దానికి పిలుస్తుంది ఉంది. మేము ఈ పునరావృత సూచిస్తుంది ఈ నారింజ బాణంతో కాల్ తిరిగి తానే మళ్ళీ వెతికినా. కానీ మళ్ళీ కూడా అమలు మాత్రమే రెడీ మరొక పునరావృత కాల్, మరియు మరొక మరియు మరొక. కానీ పునరావృత విధులు అనంతం కాదు. వారు ఏదో ముగిసింది, లేదా మీ కార్యక్రమం ఎప్పటికీ రన్ చేస్తుంది. కాబట్టి మేము బ్రేక్ ఒక మార్గాన్ని అవసరం పునరావృత కాల్స్ బయటకు. మేము బేస్ కేసు కాల్. బేస్ కేసు పరిస్థితి ఏర్పడితే ఉన్నప్పుడు, ఫంక్షన్ లేకుండా తిరిగి మరొక పునరావృత కాల్. ఒక గర్జన ఫంక్షన్, hi, ఈ ఫంక్షన్ టేక్ ఆ ఇన్పుట్ వంటి ఒక Int n పడుతుంది. బేస్ కేసు మొదటి వచ్చింది. N కంటే తక్కువ సున్నా, ముద్రణ బై మరియు ఉంటే అన్ని ఇతర సందర్భాలలో తిరిగి, ఫంక్షన్ hi ప్రింట్ మరియు నిర్వర్తిస్తుంది పునరావృత కాల్. తో ఫంక్షన్ hi మరొక కాల్ ఒక decremented ఇన్పుట్ విలువ. ఇప్పుడు, మేము, hi ప్రింట్ అయినప్పటికీ ఫంక్షన్ రద్దు కాదు మేము వరకు దాని తిరిగి టైప్ తిరిగి, ఈ సందర్భంలో శూన్యంలో. కాబట్టి ప్రతి n బేస్ కేసు కంటే ఇతర కోసం, ఈ ఫంక్షన్ hi hi తిరిగి n యొక్క మైనస్ 1. ఈ ఫంక్షన్ అయితే తప్ప నుండి, మేము స్పష్టంగా ఇక్కడ తిరిగి టైప్ లేదు. మేము కేవలం ఫంక్షన్ అమలు ఉంటాం. కాబట్టి hi కాల్ (3) hi ప్రింట్ మరియు hi (2) (1) ఒక hi అమలు ఇది అమలు hi అమలు ఇది (0), పేరు బేస్ కేసు పరిస్థితి ఏర్పడితే. కాబట్టి hi (0) బై ముద్రిస్తుంది మరియు తిరిగి. OK. కాబట్టి ఇప్పుడు మేము పునాదులను అర్థం వారు అవసరమైన పునరావృత విధులు, కనీసం ఒక బేస్ కేసు అలాగే ఒక పునరావృత కాల్, యొక్క ఒక వెళ్దాం మరింత అర్ధవంతమైన ఉదాహరణకు. తిరిగి లేని ఒక ఎవైనా రద్దు. యొక్క కారకమైన పరిశీలించి లెట్ ఆపరేషన్ సాధారణంగా ఉపయోగించే సంభావ్యత లెక్కలు. 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, ఈ ఫంక్షన్ టేక్, ఒక పడుతుంది గర్జన ఫంక్షన్ ఒక Int, n, ఇన్పుట్ వంటి. బేస్ కేసు మొదటి వచ్చింది. N కంటే తక్కువ 0, ముద్రణ ఉంటే "బై" మరియు తిరిగి.