Q:-1 Write a program print n to 1 by using recursion.
Input:-5
Output:-5 4 3 2 1
import [Link];
public class RecursionDemo {
public static void main(String[] args) {
Scanner sc=new Scanner([Link]);
[Link]("Enter number");
int n=[Link]();
printDec(n);
}
public static void printDec(int n)
{
if(n==0)
{
return;
}
[Link](n+" ");
printDec(n-1);
}
}
Q:-2 Write program a print 1 to N by using recursion.
Input:-5
Output:-1 2 3 4 5
import [Link];
public class RecursionDemo {
public static void main(String[] args) {
Scanner sc=new Scanner([Link]);
[Link]("Enter number");
int n=[Link]();
printIec(n);
}
public static void printIec(int n)
{
if(n==0) {
return;
}
printIec(n-1);
[Link](n+" ");
}
}
Q:-3 Write a program print N to 1 and 1 to N by using recursion.
Input:-5
Output:-5 4 3 2 1 1 2 3 4 5
import [Link];
public class RecursionDemo {
public static void main(String[] args) {
Scanner sc=new Scanner([Link]);
[Link]("Enter number");
int n=[Link]();
printDecIec(n);
}
public static void printDecIec(int n)
{
if(n==0) {
return;
}
[Link](n+" ");
printDecIec(n-1);
[Link](n+" ");
}
}
Q:-4 Find the factorial of N.
Input:- 5
Output:-120
import [Link];
public class RecursionDemo {
public static void main(String[] args) {
Scanner sc=new Scanner([Link]);
[Link]("Enter number");
int n=[Link]();
[Link]("Factrial of "+n+ " is "+factorial(n));
}
public static int factorial(int n)
{
if(n==1) {
return 1;
}
int fact= factorial(n-1);
int fn=fact*n;
return fn;
}
}
Q:-5 Write a program to calculate power(x,n).
Input:- 2 3
Output:- 8
import [Link];
public class RecursionDemo {
public static void main(String[] args) {
Scanner sc=new Scanner([Link]);
[Link]("Enter Base");
int x=[Link]();
[Link]("Enter Power");
int n=[Link]();
[Link]("power = "+power(x,n));
}
public static int power(int x,int n)
{
if(n==0)
{
return 1;
}
int xr=power(x,n-1);
int xp=x*xr;
return xp;
}
}
Q:-6 Write a program to print Zig-Zag.
import [Link];
public class RecursionDemo {
public static void main(String[] args) {
Scanner sc=new Scanner([Link]);
[Link]("Enter Number");
int n=[Link]();
printZigZag(n);
}
public static void printZigZag(int n)
{
if(n==0)
{
return ;
}
[Link]("PRE:: "+n);
printZigZag(n-1);
[Link]("IN:: "+n);
printZigZag(n-1);
[Link]("POST:: "+n);
}
}
Result:-
Enter Number
2
PRE:: 2
PRE:: 1
IN:: 1
POST:: 1
IN:: 2
PRE:: 1
IN:: 1
POST:: 1
POST:: 2
Q:-7 Tower of Hanai by using recursion.
import [Link];
public class RecursionDemo {
public static void main(String[] args) {
Scanner sc=new Scanner([Link]);
[Link]("Enter Number Of Disc");
int n=[Link]();
[Link]("Enter Size of Lower Disc");
int sdisc=[Link]();
[Link]("Enter Size of Medium Disc");
int mdisc=[Link]();
[Link]("Enter Size of Larger Disc");
int ldisc=[Link]();
tower(n,sdisc,mdisc,ldisc);
}
public static void tower(int n,int sdisc,int mdisc,int ldisc)
{
if(n==0)
{
return;
}
tower(n-1,sdisc,ldisc,mdisc);
[Link](n+" "+sdisc+" "+mdisc);
tower(n-1,ldisc,mdisc,sdisc);
}
}
Result:-
Enter Number Of Disc
3
Enter Size of Lower Disc
10
Enter Size of Medium Disc
11
Enter Size of Larger Disc
12
1 10 11
2 10 12
1 11 12
3 10 11
1 12 10
2 12 11
1 10 11
Q:-8 Print array by using recursion.
public class RecursionDemo {
public static void main(String[] args) {
int []arr={1,2,3,4,5,6,7,8,9,10};
new RecursionDemo().print(arr,0);
}
public void print(int[]arr,int n)
{
if([Link]==n)
{
return;
}
[Link](arr[n]+" ");
print(arr,n+1);
}
}
Q:-9 Print array in reverse order by using recursion.
import [Link];
public class RecursionDemo {
public static void main(String[] args) {
int []arr={1,2,3,4,5,6,7,8,9,10};
new RecursionDemo().print(arr,0);
}
public void print(int[]arr,int n)
{
if([Link]==n)
{
return;
}
print(arr,n+1);
[Link](arr[n]+" ");
}
}
Q:-9 Find max from array by using recursion.
public class RecursionDemo {
public static void main(String[] args) {
int []arr={15,22,11,23,44,1,5,2};
[Link](new RecursionDemo().findMax(arr,0));
}
public int findMax(int []arr, int idx)
{
if(idx==[Link]-1)
{
return arr[idx];
}
int tmax=findMax(arr,idx+1);
if(tmax>arr[idx])
{
return tmax;
}
else
{
return arr[idx];
}
}
}
Q:-10 Find first index value of given target.
public class RecursionDemo {
public static void main(String[] args) {
int []arr={15,21,11,23,44,11,22,2};
[Link](new
RecursionDemo().firstOccurance(arr,0,2));
}
public int firstOccurance(int []arr,int idx,int target)
{
if(idx==[Link])
{
return -1;
}
if(target==arr[idx])
{
return idx;
}
else
{
return firstOccurance(arr,idx+1,target);
}
}
}
Q:-11 Find the last occurrence.
public class RecursionDemo {
public static void main(String[] args) {
int[]arr={1,2,3,3,4,4,5,6,3,2};
[Link](new
RecursionDemo().lastOccurance(arr,1,0));
}
public int lastOccurance(int []arr, int target,int idx)
{
if([Link]==idx)
{
return -1;
}
int loc=lastOccurance(arr,target,idx+1);
if(loc==-1)
{
if(arr[idx]==target)
{
return idx;
}
else
{
return -1;
}
}
else {
return loc;
}
}
}
Q:- Print nth fibonacci number.
public class RecursionDemo {
public static void main(String[] args)
{
[Link](new RecursionDemo().fibo(3));
}
public int fibo(int n)
{
if(n<=1)
{
return n;
}
return fibo(n-1)+fibo(n-2);
}
}
Result:- 2