{"id":3039,"date":"2026-03-27T15:42:21","date_gmt":"2026-03-27T10:12:21","guid":{"rendered":"https:\/\/codematrix.co.in\/blog\/?page_id=3039"},"modified":"2026-03-27T15:42:57","modified_gmt":"2026-03-27T10:12:57","slug":"c-recursion-with-example","status":"publish","type":"page","link":"https:\/\/codematrix.co.in\/blog\/c-recursion-with-example\/","title":{"rendered":"C++ Recursion (With Example)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3039\" class=\"elementor elementor-3039\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f73e097 e-flex e-con-boxed e-con e-parent\" data-id=\"f73e097\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cc5300c elementor-widget elementor-widget-html\" data-id=\"cc5300c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n    \/* --- Brand Styling --- *\/\r\n    :root {\r\n        --brand-purple: #9C00E4;\r\n        --brand-light: #f3e8ff;\r\n    }\r\n\r\n    \/* Reset & Base *\/\r\n    .python-full-layout * { box-sizing: border-box; }\r\n\r\n    \/* Layout Adjustments *\/\r\n    .python-full-layout { \r\n        display: flex; \r\n        gap: 30px; \r\n        padding: 20px; \r\n        max-width: 1200px; \r\n        margin: 0 auto;\r\n        background: #fdfbff; \r\n    }\r\n\r\n    .sidebar { \r\n        width: 280px; \r\n        position: sticky; \r\n        top: 20px; \r\n        height: fit-content; \r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .sidebar .topic { \r\n        display: block; \r\n        padding: 12px; \r\n        text-decoration: none; \r\n        color: #444; \r\n        border-radius: 8px; \r\n        margin-bottom: 8px; \r\n        background: #fff;\r\n        border: 1px solid #eee;\r\n        transition: 0.3s;\r\n    }\r\n\r\n    .sidebar .topic.active { \r\n        background: var(--brand-purple); \r\n        color: white; \r\n        border-color: var(--brand-purple);\r\n    }\r\n\r\n    \/* Main Content *\/\r\n    .main-content { \r\n        flex: 1; \r\n        font-family: 'Segoe UI', sans-serif; \r\n        min-width: 0; \r\n    }\r\n\r\n    .article-card { \r\n        background: white; \r\n        padding: 30px; \r\n        border-radius: 15px; \r\n        box-shadow: 0 4px 15px rgba(0,0,0,0.05); \r\n    }\r\n\r\n    h1 { color: var(--brand-purple); font-size: 2.2rem; margin-bottom: 20px; }\r\n    h2 { color: #333; margin-top: 30px; border-left: 4px solid var(--brand-purple); padding-left: 15px; }\r\n    \r\n    pre { \r\n        background: #1a1a2e; \r\n        color: #fff; \r\n        padding: 20px; \r\n        border-radius: 10px; \r\n        overflow-x: auto; \r\n        margin: 20px 0;\r\n        white-space: pre;\r\n    }\r\n\r\n    table { \r\n        width: 100%; \r\n        border-collapse: collapse; \r\n        margin: 20px 0; \r\n    }\r\n\r\n    table th, table td { \r\n        border: 1px solid #eee; \r\n        padding: 12px; \r\n        text-align: left; \r\n    }\r\n\r\n    table th { background: #f8f9fa; color: var(--brand-purple); }\r\n\r\n    \/* Responsive *\/\r\n    @media (max-width: 991px) {\r\n        .python-full-layout { flex-direction: column; }\r\n        .sidebar { width: 100%; position: relative; top: 0; }\r\n    }\r\n<\/style>\r\n\r\n<div class=\"python-full-layout\">\r\n    <aside class=\"sidebar\">\r\n        <h2 style=\"font-size: 1.2rem; color: var(--brand-purple); margin-bottom: 15px;\">Recursive Logic<\/h2>\r\n        <a href=\"#logic\" class=\"topic active\">What is Recursion?<\/a>\r\n        <a href=\"#code\" class=\"topic\">1. C++ Implementation<\/a>\r\n        <a href=\"#stack\" class=\"topic\">2. Stack Mechanism<\/a>\r\n        <a href=\"#complexity\" class=\"topic\">3. Complexity Analysis<\/a>\r\n        <a href=\"#mcq\" class=\"topic\">Practice MCQs<\/a>\r\n    <\/aside>\r\n\r\n    <main class=\"main-content\">\r\n        <article class=\"article-card\">\r\n            \r\n            <header id=\"logic\">\r\n                <h1>Recursion in C++<\/h1>\r\n                <p><strong>Recursion<\/strong> is a programming technique where a function calls itself directly or indirectly to solve a problem. In C++, recursion is used to break down complex problems into smaller, more manageable \"sub-problems.\" Every recursive function must have a <strong>Base Case<\/strong> (to stop the execution) and a <strong>Recursive Case<\/strong> (to continue the process).<\/p>\r\n            <\/header>\r\n\r\n            \r\n\r\n            <section id=\"code\">\r\n                <h2>1. C++ Example: Factorial Calculation<\/h2>\r\n                <p>A classic example of recursion is calculating the factorial of a number ($n!$). The logic is $n! = n \\times (n-1)!$, with the base case being $0! = 1$.<\/p>\r\n                <pre><code id=\"typingCode\"><\/code><\/pre>\r\n            <\/section>\r\n\r\n            <section id=\"stack\">\r\n                <h2>2. How Recursion Works (The Stack)<\/h2>\r\n                <p>When a function calls itself, the current execution state is pushed onto the <strong>System Stack<\/strong>. If a base case is never reached, the stack grows until it runs out of memory, resulting in a <strong>Stack Overflow<\/strong> error.<\/p>\r\n                \r\n                \r\n                \r\n                <ul>\r\n                    <li><strong>Activation Record:<\/strong> Each call creates a new record in memory containing local variables and the return address.<\/li>\r\n                    <li><strong>Winding:<\/strong> The process of calling the function repeatedly.<\/li>\r\n                    <li><strong>Unwinding:<\/strong> The process of returning results back through the chain once the base case is met.<\/li>\r\n                <\/ul>\r\n            <\/section>\r\n\r\n            <section id=\"complexity\">\r\n                <h2>3. Complexity Breakdown<\/h2>\r\n                <table>\r\n                    <thead>\r\n                        <tr>\r\n                            <th>Metric<\/th>\r\n                            <th>Factorial Case<\/th>\r\n                            <th>Note<\/th>\r\n                        <\/tr>\r\n                    <\/thead>\r\n                    <tbody>\r\n                        <tr><td>Time Complexity<\/td><td>$O(n)$<\/td><td>$n$ calls are made for input $n$.<\/td><\/tr>\r\n                        <tr><td>Space Complexity<\/td><td>$O(n)$<\/td><td>Due to the function call stack depth.<\/td><\/tr>\r\n                    <\/tbody>\r\n                <\/table>\r\n            <\/section>\r\n\r\n            <section id=\"mcq\" class=\"practice-mcqs\">\r\n                <h2>Knowledge Check<\/h2>\r\n                <div class=\"mcq-box\" style=\"background: #f9f4ff; padding: 20px; border-radius: 10px; border: 1px solid #e9d5ff;\">\r\n                    <p><strong>1. What happens if a recursive function lacks a base case?<\/strong><br>\r\n                    A) Infinite Loop | B) <strong>Stack Overflow<\/strong> | C) It returns 0<\/p>\r\n                    \r\n                    <p><strong>2. Which of these is a recursive data structure?<\/strong><br>\r\n                    A) Array | B) <strong>Linked List \/ Tree<\/strong> | C) Integer<\/p>\r\n\r\n                    <p><strong>3. Recursion is generally ____ than iteration in terms of memory.<\/strong><br>\r\n                    A) More Efficient | B) <strong>Less Efficient<\/strong> | C) Equal<\/p>\r\n                <\/div>\r\n            <\/section>\r\n\r\n            <div style=\"text-align: center; margin-top: 40px;\">\r\n                <a href=\"https:\/\/codematrix.co.in\/courses\" target=\"_blank\" style=\"background: var(--brand-purple); color: white; padding: 12px 25px; text-decoration: none; border-radius: 8px; display: inline-block; font-weight: bold;\">\r\n                    \ud83d\ude80 Master Deep Logic!\r\n                <\/a>\r\n            <\/div>\r\n\r\n        <\/article>\r\n    <\/main>\r\n<\/div>\r\n\r\n<script>\r\nwindow.addEventListener('DOMContentLoaded', () => {\r\n    const sections = document.querySelectorAll('header[id], section[id]');\r\n    const navLinks = document.querySelectorAll('.sidebar .topic');\r\n\r\n    const observer = new IntersectionObserver((entries) => {\r\n        entries.forEach(entry => {\r\n            if (entry.isIntersecting) {\r\n                navLinks.forEach(link => {\r\n                    link.classList.remove('active');\r\n                    if (link.getAttribute('href') === `#${entry.target.id}`) {\r\n                        link.classList.add('active');\r\n                    }\r\n                });\r\n            }\r\n        });\r\n    }, { threshold: 0.5 });\r\n    sections.forEach(section => observer.observe(section));\r\n});\r\n\r\nconst codeText = `#include <iostream>\r\nusing namespace std;\r\n\r\n\/\/ Recursive function to calculate factorial\r\nint factorial(int n) {\r\n    \/\/ 1. Base Case: stop when n is 0 or 1\r\n    if (n <= 1) {\r\n        return 1;\r\n    }\r\n    \/\/ 2. Recursive Case: n * (n-1)!\r\n    return n * factorial(n - 1);\r\n}\r\n\r\nint main() {\r\n    int number = 5;\r\n    \r\n    cout << \"Factorial of \" << number << \" is: \" << factorial(number) << endl;\r\n    \/\/ Calculation: 5 * 4 * 3 * 2 * 1 = 120\r\n    \r\n    return 0;\r\n}\r\n`;\r\n\r\nlet i = 0;\r\nfunction typeCode() {\r\n    const target = document.getElementById(\"typingCode\");\r\n    if (target && i < codeText.length) {\r\n        target.textContent += codeText.charAt(i);\r\n        i++;\r\n        setTimeout(typeCode, 15);\r\n    }\r\n}\r\nwindow.addEventListener(\"DOMContentLoaded\", typeCode);\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Recursive Logic What is Recursion? 1. C++ Implementation 2. Stack Mechanism 3. Complexity Analysis Practice MCQs Recursion in C++ Recursion is a programming technique where a function calls itself directly or indirectly to solve a problem. In C++, recursion is used to break down complex problems into smaller, more manageable &#8220;sub-problems.&#8221; Every recursive function must [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-3039","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Coding Interview Prep, MERN &amp; AI Blogs | CodeMatrix<\/title>\n<meta name=\"description\" content=\"Upgrade your coding skills with CodeMatrix blogs covering AI, Data Science, MERN Stack, React, Node.js, and interview preparation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/codematrix.co.in\/blog\/c-recursion-with-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Coding Interview Prep, MERN &amp; AI Blogs | CodeMatrix\" \/>\n<meta property=\"og:description\" content=\"Upgrade your coding skills with CodeMatrix blogs covering AI, Data Science, MERN Stack, React, Node.js, and interview preparation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/codematrix.co.in\/blog\/c-recursion-with-example\/\" \/>\n<meta property=\"og:site_name\" content=\"CodeMatrix\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-27T10:12:57+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/codematrix.co.in\\\/blog\\\/c-recursion-with-example\\\/\",\"url\":\"https:\\\/\\\/codematrix.co.in\\\/blog\\\/c-recursion-with-example\\\/\",\"name\":\"Coding Interview Prep, MERN & AI Blogs | CodeMatrix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/codematrix.co.in\\\/blog\\\/#website\"},\"datePublished\":\"2026-03-27T10:12:21+00:00\",\"dateModified\":\"2026-03-27T10:12:57+00:00\",\"description\":\"Upgrade your coding skills with CodeMatrix blogs covering AI, Data Science, MERN Stack, React, Node.js, and interview preparation.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/codematrix.co.in\\\/blog\\\/c-recursion-with-example\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/codematrix.co.in\\\/blog\\\/c-recursion-with-example\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/codematrix.co.in\\\/blog\\\/c-recursion-with-example\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/codematrix.co.in\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ Recursion (With Example)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/codematrix.co.in\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/codematrix.co.in\\\/blog\\\/\",\"name\":\"CodeMatrix\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/codematrix.co.in\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Coding Interview Prep, MERN & AI Blogs | CodeMatrix","description":"Upgrade your coding skills with CodeMatrix blogs covering AI, Data Science, MERN Stack, React, Node.js, and interview preparation.","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:\/\/codematrix.co.in\/blog\/c-recursion-with-example\/","og_locale":"en_GB","og_type":"article","og_title":"Coding Interview Prep, MERN & AI Blogs | CodeMatrix","og_description":"Upgrade your coding skills with CodeMatrix blogs covering AI, Data Science, MERN Stack, React, Node.js, and interview preparation.","og_url":"https:\/\/codematrix.co.in\/blog\/c-recursion-with-example\/","og_site_name":"CodeMatrix","article_modified_time":"2026-03-27T10:12:57+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/codematrix.co.in\/blog\/c-recursion-with-example\/","url":"https:\/\/codematrix.co.in\/blog\/c-recursion-with-example\/","name":"Coding Interview Prep, MERN & AI Blogs | CodeMatrix","isPartOf":{"@id":"https:\/\/codematrix.co.in\/blog\/#website"},"datePublished":"2026-03-27T10:12:21+00:00","dateModified":"2026-03-27T10:12:57+00:00","description":"Upgrade your coding skills with CodeMatrix blogs covering AI, Data Science, MERN Stack, React, Node.js, and interview preparation.","breadcrumb":{"@id":"https:\/\/codematrix.co.in\/blog\/c-recursion-with-example\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codematrix.co.in\/blog\/c-recursion-with-example\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/codematrix.co.in\/blog\/c-recursion-with-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/codematrix.co.in\/blog\/"},{"@type":"ListItem","position":2,"name":"C++ Recursion (With Example)"}]},{"@type":"WebSite","@id":"https:\/\/codematrix.co.in\/blog\/#website","url":"https:\/\/codematrix.co.in\/blog\/","name":"CodeMatrix","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codematrix.co.in\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"}]}},"_links":{"self":[{"href":"https:\/\/codematrix.co.in\/blog\/wp-json\/wp\/v2\/pages\/3039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codematrix.co.in\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/codematrix.co.in\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/codematrix.co.in\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codematrix.co.in\/blog\/wp-json\/wp\/v2\/comments?post=3039"}],"version-history":[{"count":4,"href":"https:\/\/codematrix.co.in\/blog\/wp-json\/wp\/v2\/pages\/3039\/revisions"}],"predecessor-version":[{"id":3043,"href":"https:\/\/codematrix.co.in\/blog\/wp-json\/wp\/v2\/pages\/3039\/revisions\/3043"}],"wp:attachment":[{"href":"https:\/\/codematrix.co.in\/blog\/wp-json\/wp\/v2\/media?parent=3039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}