You are on page 1of 8

1.

If N=5 then print 5 4 3 2 1 using recursion


#include <stdio.h>
void rec_print(int N){
if(N==0) return;
else{
printf("%d ",N);
rec_print(N-1);
}
}
int main(int argc, char** argv)
{
rec_print(5);
return 0;
}

2. If N=5 then print 1 2 3 4 5 using recursion


#include <stdio.h>
void rec_print(int N){
if(N==0) return;
else{
rec_print(N-1);
printf("%d ",N);
}
}
int main(int argc, char** argv)
{
rec_print(5);
return 0;
}

3. If N=5 then print 5 4 3 2 1 1 2 3 4 5 using recursion


#include <stdio.h>
void rec_print(int N){
if(N==0) return;
else{
printf("%d ",N);
rec_print(N-1);
printf("%d ",N);
}
}
int main(int argc, char** argv)
{
rec_print(5);
return 0;
}

4. If N=5 then print 1, 2, 4, 7, 11 using recursion


#include <stdio.h>
void rec_print(int term,int N){
static int gap=0;
if(N==0) return;
else{
printf("%d ",term);
gap +=1;
rec_print(term+gap,N-1);
}
}
int main(int argc, char** argv)
{
int term=1,N=5;
rec_print(term,N);
return 0;
}

5. Print series 3, 6, 12, 24, 48, ….. to N

#include <stdio.h>
void rec_print(int term,int N){
if(N==0) return;
else{
printf("%d ",term);
rec_print(term*2,N-1);
}
}
int main(int argc, char** argv)
{
int N=5,term=3;
rec_print(term,N);
return 0;
}

6. Sum of the series 1+2+3+4+.....+10


#include <stdio.h>
int rec_sum(int x){
if(x==1) return 1;
else
{
return x+rec_sum(x-1);
}
}
int main(int argc, char** argv)
{
int x=10;
printf("sum=%d",rec_sum(x));
return 0;
}

7. Sum of the series 4+5+6+7+.......+10


#include <stdio.h>
int rec_sum(int x){
if(x==4) return 4;
else
{
return x+rec_sum(x-1);
}
}
int main(int argc, char** argv)
{
int x=10;
printf("sum=%d",rec_sum(x));
return 0;
}

8. 1+3+5+.........upto 10 terms
#include <stdio.h>
int rec_sum(int val,int term){
if(term==1) return val;
else
{
return val+rec_sum(val+2,term-1);
}
}
int main(int argc, char** argv)
{
int term=10,val=1;
printf("sum=%d",rec_sum(val,term));
return 0;
}

9. Sum of series 2+4+6………..upto n terms


#include <stdio.h>
int rec_sum(int val,int term){
if(term==1) return val;
else
{
return val+rec_sum(val+2,term-1);
}
}
int main(int argc, char** argv)
{
int term=10,val=2;
printf("sum=%d",rec_sum(val,term));
return 0;
}

10. Sum of series 10+9+8+7+6+.....+1


#include <stdio.h>
int rec_sum(int x){
if(x==1)
{
return 1;
}
else
{
return rec_sum(x-1)+x; //you can write x + rec_sum(x-1) both are same
}
}
int main(int argc, char** argv)
{
int x=10;
printf("sum=%d",rec_sum(x));
return 0;
}

11. Sum of series 10-9-8-7-6-........-1


#include <stdio.h>
int rec_sum(int x){
if(x==10) return x+rec_sum(x-1);
else if(x==1)
{
return -1;
}
else
{
return rec_sum(x-1)-x;
}
}
int main(int argc, char** argv)
{
int x=10;
printf("sum=%d",rec_sum(x));
return 0;
}

12. 100-98-96-94-............. Upto n terms


#include <stdio.h>
int n=4;
int rec_sum(int x,int term){
if(term==1) return x+rec_sum(x-2,term+1);
else if(term==n) return -x;

else return rec_sum(x-2,term+1)-x;


}
int main(int argc, char** argv)
{
int term=1,val=100;
printf("sum=%d",rec_sum(val,term));
return 0;
}

𝑦
13. Find the value of exponential 𝑥
#include <stdio.h>
int rec_pow(int x,int y){
if(y==1) return x;
else return x*rec_pow(x,y-1);
}
int main(int argc, char** argv)
{
int x=3;
printf("sum=%d",rec_pow(x,x));
return 0;
}

2 2 2 2
14. Sum of the series 1 + 2 + 3 + 4 +....... + 10
#include <stdio.h>
int rec_square(int x){
if(x==1) return 1;
else return x*x+rec_square(x-1);
}
int main(int argc, char** argv)
{
int x=10;
printf("sum=%d",rec_square(x));
return 0;
}

2 3 4 5 𝑛
15. Sum of the series 1 + 2 + 3 + 4 + 5 +........ + 𝑛
#include <stdio.h>
int rec_pow(int x,int y){
if(y==1) return x;
else return x*rec_pow(x,y-1);
}
int rec_sum_pow(int val){
if(val==1) return 1;
else return rec_pow(val,val)+rec_sum_pow(val-1);
}
int main(int argc, char** argv)
{
int n=3;
printf("sum=%d",rec_sum_pow(n));
return 0;
}

16. Fibonacci series 0 1 1 2 3 5 8 13 21

#include <stdio.h>
int fib(int n){
if(n==0) return 0;
if(n==1) return 1;
else return fib(n-2)+fib(n-1);
}
int main(int argc, char** argv)
{
int num=9,i;
for(i=0;i<num;i++){
printf("%d ",fib(i));
}
return 0;
}
17. GCD using recursion
#include <stdio.h>
int GCD(int a, int b){
if(a%b==0) return b;
else return GCD(b,a%b);
}
int main(int argc, char** argv)
{
int a=42,b=8;
printf("GCD =%d",GCD(a,b));
return 0;
}

18. Sum of the series 1! + 2! + 3! + 4! +......... + 𝑛! using recursion


#include <stdio.h>
int fact(int val){
if(val==1) return 1;
else return val*fact(val-1);
}
int rec_fact_sum(int n){
if(n==1) return 1;
else return fact(n)+rec_fact_sum(n-1);
}
int main(int argc, char** argv)
{
int n=4;
printf("sum of factorials =%d",rec_fact_sum(n));
return 0;
}

1 2 3 4 𝑛
19. Sum of the series
1!
+ 2!
+ 3!
+ 4!
+........... + 𝑛!
using recursion
#include <stdio.h>
double fact(double val){
if(val==1) return 1;
else return val*fact(val-1);
}
double rec_fact_sum(double n){
if(n==1) return 1;
else return (n/fact(n))+rec_fact_sum(n-1);
}
int main(int argc, char** argv)
{
double n=5.0;
printf("sum of factorials =%lf",rec_fact_sum(n));
return 0;
}

2 3 4 𝑁
𝑎 𝑎 𝑎 𝑎
20. Sum of the series 𝑎 + + + +........... + using recursion
2 3 4 𝑁
#include <stdio.h>
double rec_pow(double x,double y){
if(y==1) return x;
else return x*rec_pow(x,y-1);
}

double rec_ser_sum(double a, double N){


if(N==1) return a;
else return (rec_pow(a,N)/N)+rec_ser_sum(a,N-1);
}
int main(int argc, char** argv)
{
double a=2,N=10;
printf("sum of factorials =%lf",rec_ser_sum(a,N));
return 0;
}

2 3 4 5
21. Sum of the series 𝑎 − 𝑎 + 𝑎 − 𝑎 + 𝑎 ........ 20 𝑡𝑒𝑟𝑚𝑠 using
recursion
#include <stdio.h>
double rec_pow(double x,double y){
if(y==1) return x;
else return x*rec_pow(x,y-1);
}

double rec_ser_sum(double a, double N){


/*
sign variable changes sign for alternating terms
here as static variable sign holds value between call
*/
static int sign=1;
if(N==1) return a;
else{
sign*=-1;
return (sign*rec_pow(a,N))+rec_ser_sum(a,N-1);
}
}
int main(int argc, char** argv)
{
double N=20,a=2;
printf("Sum=%lf",rec_ser_sum(a,N));
return 0;
}

22. Sum of the series 1 + 11 + 111 + 1111 +...... 𝑁 𝑡𝑒𝑟𝑚𝑠 using


recursion
#include <stdio.h>
long int rec_ser_sum(long int term,long int N){
if(N==1) return term;
else{
return term+rec_ser_sum(term*10+1,N-1);
}
}
int main(int argc, char** argv)
{
long int term=1,N=4;
printf("sum of factorials =%ld",rec_ser_sum(term,N));
return 0;
}

(𝑥+2) (2𝑥+3) (3𝑥+4)


23. Print sum of series 1 + + + +.......... 𝑁 𝑡𝑒𝑟𝑚𝑠
2! 3! 4!
#include <stdio.h>
int rec_fact(int n){
if(n==1) return 1;
else return n*rec_fact(n-1);
}
double rec_ser_sum(double x, double N){
if(N==1) return 1;
else
return ((N-1)*x+N)/rec_fact(N)+rec_ser_sum(x,N-1);
}
int main(int argc, char** argv)
{
double N=6,x=2;
printf("Sum=%lf",rec_ser_sum(x,N));
return 0;
}

24.

You might also like