{"id":11559,"date":"2022-09-27T21:40:53","date_gmt":"2022-09-27T16:10:53","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/"},"modified":"2022-09-27T21:40:53","modified_gmt":"2022-09-27T16:10:53","slug":"solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/","title":{"rendered":"[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-35344082\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"35344082\" data-parentid=\"35343557\" data-score=\"2\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>It will be much easier to understand what is happening if you start with what happens closer to the base case of the recursion. Suppose you have <code>fun(0)<\/code> in your <code>main<\/code>. inside the body of <code>fun<\/code> this happens: <\/p>\n<pre><code>void fun(int n)\n{\n    if(n &gt; 0) \/\/this is false, so function does nothing\n    {\n        fun(n-1);\n        printf(\"%d \", n);\n        fun(n-1);\n    }\n}\n<\/code><\/pre>\n<p>now what if you have <code>foo(1)<\/code> in your <code>main<\/code> ? <\/p>\n<pre><code>void fun(int n)\n{\n    if(n &gt; 0) \/\/this is true, lets execute the block\n    {\n        fun(n-1); \/\/call fun(0), this does nothing\n        printf(\"%d \", n); \/\/print value 1\n        fun(n-1);\/\/call fun(0) again, does nothing\n    }\n}\n<\/code><\/pre>\n<p>so you can see that <code>fun(1)<\/code> will print value 1, how about <code>fun(2)<\/code>?<\/p>\n<pre><code>void fun(int n)\n{\n    if(n &gt; 0) \n    {\n        fun(n-1);        \/\/call fun(1), prints 1\n        printf(\"%d \", n);\/\/print value 2\n        fun(n-1);        \/\/call fun(1), prints 1\n    }\n}\n<\/code><\/pre>\n<p>so as you can see <code>foo(2)<\/code> will print &#8220;1 2 1&#8221;, similarly <code>foo(3)<\/code> will print 1 2 1 3 1 2 1<\/p>\n<p>how the stack builds up and unwinds is very interesting and you should sit down with pen and paper and figure that out. <\/p>\n<p>This is called pure structural recursion, you get closer to base case every step of the recursion. <\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">0<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] It will be much easier to understand what is happening if you start with what happens closer to the base case of the recursion. Suppose you have fun(0) in your main. inside the body of fun this happens: void fun(int n) { if(n &gt; 0) \/\/this is false, so function does nothing { fun(n-1); &#8230; <a title=\"[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/\" aria-label=\"More on [Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324,494],"class_list":["post-11559","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-recursion"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] It will be much easier to understand what is happening if you start with what happens closer to the base case of the recursion. Suppose you have fun(0) in your main. inside the body of fun this happens: void fun(int n) { if(n &gt; 0) \/\/this is false, so function does nothing { fun(n-1); ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-27T16:10:53+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\\\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed]\",\"datePublished\":\"2022-09-27T16:10:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\\\/\"},\"wordCount\":152,\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"keywords\":[\"c++\",\"recursion\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\\\/\",\"name\":\"[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\"},\"datePublished\":\"2022-09-27T16:10:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\\\/\\\/jassweb.com\"],\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/author\\\/jaspritsinghghumangmail-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed] - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed] - JassWeb","og_description":"[ad_1] It will be much easier to understand what is happening if you start with what happens closer to the base case of the recursion. Suppose you have fun(0) in your main. inside the body of fun this happens: void fun(int n) { if(n &gt; 0) \/\/this is false, so function does nothing { fun(n-1); ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/","og_site_name":"JassWeb","article_published_time":"2022-09-27T16:10:53+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed]","datePublished":"2022-09-27T16:10:53+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/"},"wordCount":152,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","recursion"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/","name":"[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-27T16:10:53+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-can-anyone-explain-how-this-recursion-code-works-exactly-and-what-happens-in-the-programs-stack-or-in-memory-step-by-step-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Can anyone explain how this recursion code works exactly and what happens in the programs stack or in memory step by step? [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/11559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=11559"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/11559\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=11559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=11559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=11559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}