Search This Blog

Thursday, January 4, 2024

Function in C Part 4: Recursion Function, Nested Functions

 

Recursion Function

  • A function that calls itself is known as a recursive function. And, this technique is known as recursion.


  • The recursion continues until some condition is met to prevent it.

  • To prevent infinite recursion, if...else statement (or similar approach) can be used where one branch makes the recursive call, and other doesn't.




Example: Sum of  Natural Numbers Using Recursion


#include <stdio.h>

int sum(int n);


int main() {

    int number, result;


    printf("Enter a positive integer: ");

    scanf("%d", &number);


    result = sum(number);


    printf("sum = %d", result);

    return 0;

}


int sum(int n) {

    if (n != 0)

        // sum() function calls itself

        return n + sum(n-1); 

    else

        return n;

}

Output:

Enter a positive integer: 3

sum = 6


Initially, the sum() is called from the main() function with number passed as an argument.

Suppose, the value of n inside sum() is 3 initially. During the next function call, 2 is passed to the sum() function. This process continues until n is equal to 0.

When n is equal to 0, the if condition fails and the else part is executed returning the sum of integers ultimately to the main()function.










Nested Functions

GNU C provides several language features not found in ISO standard C.

nested function is a function defined inside another function. Nested functions are supported as an extension in GNU C

The nested function’s name is local to the block where it is defined. For example, here we define a nested function named square, and call it twice:

#include <stdio.h>


int foo (int a, int b);


int main() {

     

    int r;

    r =foo(2,3);

    printf("result :: %d", r);

    

    return 0;

}

int foo (int a, int b)

{

  int square (int z) { return z * z; }


  return square (a) + square(b);

}

Output 

result :: 13


No comments:

Post a Comment

Function in C Part 4: Recursion Function, Nested Functions

  Recursion Function A function that calls itself is known as a recursive function. And, this technique is known as recursion. The recursion...