Write a recursive function to obtain the running sum of first 25 natural numbers.
1 + 2 + 3 + 4 + 5 + …. + 23 + 24 + 25 = 325
Related Read:
C Program to Calculate the Sum of Natural Numbers From 1 to N
C Program To Calculate the Sum of Natural Numbers From 1 to N using For Loop
Recursive Functions In C Programming Language
Page Contents
#include<stdio.h> int sum(int num) { if(num) return(num + sum(num-1)); else return 0; } int main() { int count = 25; printf("Sum of 1st 25 natural numbers is %d\n", count, sum(count)); return 0; }
Output:
Sum of 1st 25 natural numbers is 325
25 is passed to a function sum, from main method. Inside function sum(), if the passed number is a non-zero then we add sum(num-1) to num. We keep doing it until num value is 0. Once num is 0, code inside else block gets executed and 0 is returned.
#include<stdio.h> int sum(int num) { if(num) return(num + sum(num-1)); else return 0; } int main() { int count; printf("Enter a positive no\n"); scanf("%d", &count); printf("Sum of 1st %d natural numbers is %d\n", count, sum(count)); return 0; }
Output 1:
Enter a positive no
5
Sum of 1st 5 natural numbers is 15
Output 2:
Enter a positive no
14
Sum of 1st 14 natural numbers is 105
Lets assume user has input num value as 5.
Recursive Call sum(num – 1).
num | Calling Function | Returned Value |
---|---|---|
5 | sum(5) | |
5 | sum(4) | 10 |
4 | sum(3) | 6 |
3 | sum(2) | 3 |
2 | sum(1) | 1 |
1 | sum(0) | 0 |
0 | return 0; |
Value Returning – Control Shifting back.
num+sum(num-1) | Return Value | Result |
---|---|---|
1 + sum(0) | 0 | 1 + 0 = 1 |
2 + sum(1) | 1 | 2 + 1 = 3 |
3 + sum(2) | 3 | 3 + 3 = 6 |
4 + sum(3) | 6 | 4 + 6 = 10 |
5 + sum(4) | 10 | 5 + 10 = 15 |
Finally, after completing the recursive calls and once num is equal to zero, sum() will return 15 to main().
i.e., 1 + 2 + 3 + 4 + 5 = 15.
For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List
For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert