Follow along with the video below to see how to install our site as a web app on your home screen.
Забелешка: This feature may not be available in some browsers.
Да. Рекурзија ти е непрописно паркиран пајакДали може некој да ми објасни за рекурзија во C со некој краток пример?
^ Лошо објаснување
Рекурзија, најпросто кажано, ти е функција која се повикува самата себеси.
Па истото го кажав ама на најпрост начин за да може да ме сфати и барем малку да му се разјасни. Ако објаснувам на повисоко ниво ништо нема да сфати... ама ако е лошо објаснувањето дај свое, преку пример како што замоли дечкото
Па не е баш функција во функција. Функција во функција би било ова:
int faktoriel (int n)
{
int faktoriel1 (int n)
{
}
}
Рекурзија ти е функција во функција. Значи имаш еден проблем и за да го решиш тој проблем го делиш на повеќе помали подпроблеми и при тоа ја користиш истата функција.
На пример, наједноставен пример ти е факториел на некој број:
нека n=5
int faktoriel (int n)
{
if(n<2) return 1;
else return n*fakt(n-1);
}
Значи прво проверуваме за n=0 , бројот е помал од 2, значи како резултат ќе ти врати 1 зашто факториел од 0 е 1.
После проверуваме за 1, 1 е помало од 2, пак како резултат враќа 1 зашто факториел од 1 е 1.
Сега проверуваме за 2, 2 не е помало од 2, значи влагаме во else циклусот и пресметуваш 2*fakt(2-1)=2*fakt(1)=2.
Па за 3, пак си во else, 3*fakt(3-1)...
... и се така до n. Значи гледаш, го множиш бројот n и пак ја повикуваш истата функција за да го најдеш следниот број што треба да го помножиш.
Така на пример ако имаш факториел од 35 ќе добиеш 35* факториел(34), па во следната интеракција имаш 35*34* факториел(33) итн.
Функција во функција е малку чудна дефиниција, повеќе би кажал дека рекурзивна функција е онаа кое во своето извршување се повикува самата себе. Пошироки и подетални објаснувања има на тони на интернет. За мене битен момент е дека не се што може да се изведе со рекурзија е паметно така да се направи (иако многумина одат на рекурзија од прва). Рекурзијата не секогаш има подобри перформанси од нерекурзивното решавање на проблемот, што може да се утврди само со експериментирање при решавањето.
Патем, во примерот за истиот да е точен името на функцијата треба да биде fakt наместо faktoriel.
Едит ... така кој прави кафе па се враќа да пишува одговор ... во меѓувреме 100 одговори кои веќе го покриле она што се мачев да го напишам![]()