# C/C++ program for calling main() in main()

• Difficulty Level : Easy
• Last Updated : 28 Jul, 2021

Given a number N, the task is to write C/C++ program to print the number from N to 1 by calling the main() function using recursion.
Examples:

Input: N = 10
Output: 10 9 8 7 6 5 4 3 2 1
Input: N = 5
Output: 5 4 3 2 1

We provide nothing but the best curated videos and practice problems for our students. Check out the C Foundation Course and master the C language from basic to advanced level. Wait no more, start learning today!

Approach:

1. Use static variable to initialise the given number N.
2. Print the number N and decrement it.
3. Call the main() function recusrsively after above step.

Below is the implementation of the above approach:

## C

 `// C program to illustrate calling``// main() function in main() itself``#include "stdio.h"` `// Driver Code``int` `main()``{` `    ``// Declare a static variable``    ``static` `int` `N = 10;` `    ``// Condition for calling main()``    ``// recursively``    ``if` `(N > 0) {``        ``printf``(``"%d "``, N);``        ``N--;``        ``main();``    ``}``}`

## C++

 `// C++ program to illustrate calling``// main() function in main() itself``#include "iostream"``using` `namespace` `std;` `// Driver Code``int` `main()``{``    ``// Declare a static variable``    ``static` `int` `N = 10;` `    ``// Condition for calling main()``    ``// recursively until N is 0``    ``if` `(N > 0) {``        ``cout << N << ``' '``;``        ``N--;``        ``main();``    ``}``}`
Output:
`10 9 8 7 6 5 4 3 2 1`

Time Complexity: O(N), where N is the given number.

My Personal Notes arrow_drop_up