# Recursion

## Problem Set 7.1: Recursion (Class)

1. Printing Series
   1. Print Hello World N Times
   2. 1, 2, 3, 4, ⋯⋯⋯, N
   3. 1, 3, 5, 7, ⋯⋯⋯, 99
   4. 2, 4, 6, 8, ⋯⋯⋯, N
   5. N, N-1, N-2, …, 3, 2, 1
   6. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ⋯⋯⋯, N (Calculate the Fibonacci series up to Nth term or up to N using recursion)
2. Summation of Series
   1. 1 + 2 + 3 + 4 + ⋯⋯ + N
   2. 1 + 3 + 5 + 7 + ⋯⋯⋯ + N
   3. 2 + 4 + 6 + 8 + ⋯⋯⋯ + N
   4. 1^2 + 3^2 + 5^2 + 7^2 + ⋯⋯⋯ + (101)^2
   5. 2^3 + 4^3 + 6^3 + 8^3 + ⋯⋯⋯ + N^3
   6. N! = 1 \* 2 \* 3 \* 4 \* ⋯⋯⋯ \* N
3. Array
   1. Define a recursive function that takes an integer array as an argument and prints the array elements.
   2. Define a recursive function that takes an integer array as an argument and prints the array elements in reverse order.
   3. Reverse the array
   4. Implement Linear Search using recursion
   5. Implement Binary Search using recursion
   6. Search an element (Key, Maximum, Minimum, Second Maximum, and Second Minimum) in an array using recursion
      1. Find the Key Value that exists or not in an array using recursion (Return true or false)
      2. Find the Key Value that exists or not in an array using recursion (Return the index if found otherwise return -1)
      3. Find the minimum number from an array using recursion
      4. Find the maximum number from an array using recursion
      5. Find the minimum number from an array using recursion
   7. Print Array elements in pairs of first and last elements and so on
4. Others
   1. Implement Euclidean Algorithm to Calculate Greatest Common Divisor (GCD) using recursion
   2. Least Common Multiple (LCM)
   3. Palindrome Checker
   4. Print an Integer in reverse order using recursion
   5. Print String using recursion
   6. Print String in reverse order using recursion
   7. Reverse String using recursion
   8. Tower of Hanoi
   9. Calculate a^b using recursion
   10. Calculate a^b % c using recursion
   11. Calculate sqrt(a) using recursion
   12. Base Conversion
       1. Decimal to Binary
       2. Binary to Decimal
       3. Decimal to Octal
       4. Decimal to Hexadecimal
       5. Decimal to Base N Number
       6. Octal to Decimal
       7. Hexadecimal to Decimal
       8. Base N Number to Decimal

## Exercise:&#x20;

{% code title="fibonacci.c" %}

```c
#include<stdio.h>
int fib(int n);
int main(){
    int n = 6;
    for(int i=1; i<10; i++)
        printf("%d\n",fib(i));

    return 0;
}

int fib(int n){
    if(n<=2) return 1;

    return  fib(n-2) + fib(n-1);
}
```

{% endcode %}

{% code title="bigmod.c" %}

```c
#include<stdio.h>
int bigmod(int a, int b, int m);
int main(){
    int a = 5, b = 15, m = 6;

    printf("%d\n", bigmod(a, b, m));

    return 0;
}

int bigmod(int a, int b, int m){
    int x;
    if(b==0){
        return 1;
    }
    if(b%2==1){
        x = bigmod(a, b-1, m);
        return (a*x) % m;
    }else{
        int x = bigmod(a, b/2, m);
        return (x*x) % m;
    }
}

```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mun.gitbook.io/c/ex/ps6/recursion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
