C program to print all the natural numbers from 1 to N can be written in both iterative and recursive methods. In the recursive method, the task can be performed by calling a recursive function N times to print a natural number in each call. Here, the recursive method in C to print the natural numbers from 1 to N (1, 2, 3, ..., N) has been shown.
Page content(s):
Additional content(s):
1. C Program & output to Print First N Natural Numbers using Recursion
Code has been copied
/********************************************** alphabetacoder.com C program to print all natual numbers from 1 to n using recursion *********************************************/ #include <stdio.h> // recursive function void printUptoN(int n) { //condition for calling if (n > 1) printUptoN(n - 1); printf("%d ", n); } int main() { int n; //take input of the number upto which // natural numbers will be printed printf("Enter the upper limit = "); scanf("%d", & n); printf("First %d natural numbers are : ", n); // call the recursive function to print // the natural numbers printUptoN(n); return 0; }
Output
Case 1:
Enter the upper limit = 4
First 4 natural numbers are : 1 2 3 4
Case 2:
Enter the upper limit = 8
First 8 natural numbers are : 1 2 3 4 5 6 7 8
how does it print from 1 to n
ReplyDeleteThe program takes the value of n as input. The recursive function printUptoN() prints the numbers from 1 to n as the output.
Deletehow does it print from 1 to n .. please explai . im still confused
ReplyDeleteI have tried to explain the recursive calls by the following example. I hope it will help.
DeleteSuppose n = 3
Calling the function from main(): printUptoN(3)
printUptoN(3):
Here n > 1 i.e. 3 > 1 is true, so call printUptoN(2)
printUptoN(2):
Here n > 1 i.e. 2 > 1 is true, so call printUptoN(1)
printUptoN(1):
Here n > 1 i.e. 1 > 1 is false, so print 1
Now printUptoN(1) was called from printUptoN(2), so go back to printUptoN(2).
So print 2
Now printUptoN(2) was called from printUptoN(3), so go back to printUptoN(3).
So print 3
Now printUptoN(3) was called from main(), so go back to main().