C# Tutorial for Beginner : Chapter 9 Recursion

Introduction

A recursive function is a function which either calls itself or is in a potential loop of function calls. This empowers the function to rehash itself a few times, yielding the outcome and the finish of every iteration. In modern programming languages, if a program enables you to call a function inside a similar function, at that point it is known as a recursive call of the function.

Why I mention modern programming language ? It because some old languages do not support recursive. I don't know COBOL does (it unquestionably didn't at one time), however I can't exactly envision anyone minding much either. Fortran 77 does not allow recursion but it is allowed since Fortran 90, yet requires that you utilize the recursive keyword to reveal to it that a subroutine is recursive. PL/I was essentially the same - recursion was bolstered, however you needed to unequivocally let it know what procedures were recursive. I question there are numerous more than that however. When you get down to it, forbidding recursion was for the most part something IBM did in their dialect outlines, for the basic reason that IBM (360/370/3090/...) centralized computers don't bolster a stack in equipment. At the point when most languages originated from IBM, they generally precluded recursion. Since they all originate from different spots, recursion is constantly permitted (however I should include that a couple of different machines, prominently the first Cray 1, didn't have equipment bolster for a stack either).

The C# programming language bolster up recursion, a function to call itself. Be that as it may, while utilizing recursion, software engineers should be mindful so as to characterize a leave condition from the function, else it will go into a boundless loop. Recursive functions are exceptionally helpful to take care of numerous numerical issues, for example, ascertaining exponential, the factorial of a number, producing Fibonacci arrangement, and so on. To make you understand recursion easily take a look an example below how to process factorial using recursion.

Example Code

The following example computes the factorial of a given number "n" using a recursive method −
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Solution {

    static int factorial(int n) {
        if (n >= 1)
                return n * factorial(n - 1);
        else
                return 1;
    }

    static void Main(String[] args) {
        int n = Convert.ToInt32(Console.ReadLine());
        int result = factorial(n);
        Console.WriteLine(result);
    }
}

When the code si executed, it will produce this output --
Code output
Code Output

Code Explanation

Take a look illustration below to see how recursive example above works --
recursive's illustration
recursive's illustration
When the factorial method is invoked with argument 5, the first thing done is the method accepting the argument and selecting it with condition "Is 5 is greater or equal to 1". If the condition is true, it will run 5 multiplied by "return value of the facrorial method".Inside factorial method,  the method factorial is called again but with the content of argument 4. then the method factorial method is selected and then call the factorial method again. This goes on until the condition "n> = 1" becomes false. This is where the new returns the values of "calling method".You can see how the value is obtained from 1 to 120 in the illustration.


Comments

Popular posts from this blog

Quantization of Image Data Implementation in C#

Computer Graphics Project "Planet Orbit" Source Code with Glut OpenGL

Computer Graphics Project "MINION" Source Code with Glut OpenGL