0% found this document useful (0 votes)
14 views10 pages

Java With DSA

The document contains various Java programs demonstrating recursive functions for tasks such as converting decimal to binary, calculating Fibonacci numbers, finding LCM and GCD, reversing strings, removing specific characters, and formatting strings. Each program is accompanied by example outputs and explanations of the logic used. The document is structured with clear sections for each program, making it easy to follow.

Uploaded by

Rehan Hussain
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views10 pages

Java With DSA

The document contains various Java programs demonstrating recursive functions for tasks such as converting decimal to binary, calculating Fibonacci numbers, finding LCM and GCD, reversing strings, removing specific characters, and formatting strings. Each program is accompanied by example outputs and explanations of the logic used. The document is structured with clear sections for each program, making it easy to follow.

Uploaded by

Rehan Hussain
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

DURGASOFT

if(n==0)
return 0;
else
return (n%2+10*convert(n/2));
}
}

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner([Link]);
int n = [Link]();
[Link]([Link](n));
}
}

output:
-------
C:\prakashclasses>javac [Link]

C:\prakashclasses>java Test
8
1000

C:\prakashclasses>java Test
10
1010

C:\prakashclasses>java Test
19
10011

C:\prakashclasses>java Test
556
1000101100

Ex:
n=12

1+10*0 = 1
1+10*1 = 11
0+10*11 = 110
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
61  88 85 25 26 27, 72 07 21 24 27/28 | [Link]
Maii: durgasoftonline@[Link]
DURGASOFT
0+10*110 = 1100

version2:
---------
import [Link].*;

class Demo
{
static void convert(int n)
{
if(n==0)
{
[Link]("");
}
else
{
convert(n/2);
[Link](n%2);
}
}
}

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner([Link]);
int n = [Link]();
[Link](n);
}
}

Logic:

static void convert(int n)


{
if(n!=0)
{
convert(n/2);
[Link](n%2);
}
}
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
62  88 85 25 26 27, 72 07 21 24 27/28 | [Link]
Maii: durgasoftonline@[Link]
DURGASOFT
11. Implement a program to find nth fib number.
-----------------------------------------------
0, 1, 1, 2, 3, 5, and so on

f(n)=n if n=0 or n=1


f(n)=f(n-1)+f(n-2) if n>1

f(0) = 0
f(1) = 1
f(2) = f(2-1)+f(2-2) = f(1) + f(0) = 1 + 0 = 1
f(3) = f(3-1)+f(3-2) = f(2) + f(1) = 1 + 1 = 2
f(4) = f(4-1)+f(4-2) = f(3) + f(2) = 2 + 1 = 3

and so on

f(n) = f(n-1) + f(n-2)

Ex:
---
import [Link].*;

class Demo
{
static int fib(int n)
{
if(n==0 || n==1)
return n;
else
return fib(n-1)+fib(n-2);
}
}

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner([Link]);
int n = [Link]();
for(int i=0;i<n;i++){
[Link]([Link](i)+", ");
}
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
63  88 85 25 26 27, 72 07 21 24 27/28 | [Link]
Maii: durgasoftonline@[Link]
DURGASOFT
}
}

output:
-------
C:\prakashclasses>javac [Link]

C:\prakashclasses>java Test
5
0, 1, 1, 2, 3,
C:\prakashclasses>java Test
10
0, 1, 1, 2, 3, 5, 8, 13, 21, 34,

12) Implement a program to find LCM of two numbers?


---------------------------------------------------
Least/Lowest Common Multiple

import [Link].*;

class Demo
{
static int com=1;
static int lcm(int n1,int n2)
{
if(com%n1==0 && com%n2==0)
return com;
com++;
lcm(n1,n2);
return com;
}
}

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner([Link]);
[Link]("Enter n1 value:");
int n1=[Link]();
[Link]("Enter n2 value:");
int n2=[Link]();
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
64  88 85 25 26 27, 72 07 21 24 27/28 | [Link]
Maii: durgasoftonline@[Link]
DURGASOFT
[Link]([Link](n1,n2));
}
}

output:
-------
C:\prakashclasses>javac [Link]

C:\prakashclasses>javac [Link]

C:\prakashclasses>java Test
Enter n1 value:
4
Enter n2 value:
6
12

C:\prakashclasses>java Test
Enter n1 value:
6
Enter n2 value:
9
18

C:\prakashclasses>java Test
Enter n1 value:
5
Enter n2 value:
10
10

13) Implement a program to find HCF/GCD of the given two numbers


----------------------------------------------------------------
Highest Common Factors
Greatest Common Divisior

import [Link].*;

class Demo
{
static int gcd(int a,int b)
{
while(a!=b)
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
65  88 85 25 26 27, 72 07 21 24 27/28 | [Link]
Maii: durgasoftonline@[Link]
DURGASOFT
{
if(a>b)
return gcd(a-b,b);
else
return gcd(a,b-a);
}
return a;
}
}

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner([Link]);
[Link]("Enter n1 value:");
int n1=[Link]();
[Link]("Enter n2 value:");
int n2=[Link]();
[Link]([Link](n1,n2));
}
}

output:
-------
C:\prakashclasses>javac [Link]

C:\prakashclasses>java Test
Enter n1 value:
4
Enter n2 value:
6
2

14) Implement a program to find reverse of the given string using recursion?
----------------------------------------------------------------------------
import [Link].*;

class Demo
{
static String strrev(String s)
{
if(s==null || [Link]()<=1)//BC
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
66  88 85 25 26 27, 72 07 21 24 27/28 | [Link]
Maii: durgasoftonline@[Link]
DURGASOFT
return s;
return strrev([Link](1))+[Link](0);
}
}

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner([Link]);
[Link]("Enter any String:");
String s = [Link]();
[Link]([Link](s));
}
}

ouput:
------
C:\prakashclasses>javac [Link]

C:\prakashclasses>java Test
Enter any String:
abc
cba

15) Implement a program to remove the given character from a string?


--------------------------------------------------------------------
"abcde" ----> a|b|c|d|e
"axbxcxdxex" ---> a|x|b|x|c|x|d|x|e|x

x
if ch is not x then
return strrev([Link](1))+[Link](0);
else
return strrev([Link](1));

"axbxcxdxex" ---> a|b|c|d|e


L to R ---> R to L

"axbxcxdxex" ---> e|d|c|b|a


R to L --------> R to L

abcde
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
67  88 85 25 26 27, 72 07 21 24 27/28 | [Link]
Maii: durgasoftonline@[Link]
DURGASOFT
import [Link].*;

class Demo
{
static String nox(String s,int index)
{
if(index<0) //Base Condition
return "";
if([Link](index)=='x') //RC1: if char is 'x', i.e. remove
return nox(s,index-1); //Recursion, ignoring char
else //RC2: if char is not 'x', i.e. it should be stored
return nox(s,index-1)+[Link](index); //recursion, store char in
stack
}
}

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner([Link]);
[Link]("Enter any string:");
String s = [Link]();
[Link]([Link](s,[Link]()-1));//axbx,4-1=3
}
}

output:
-------
C:\prakashclasses>java Test
Enter any string:
abcd
abcd

C:\prakashclasses>java Test
Enter any string:
axbcd
abcd

C:\prakashclasses>java Test
Enter any string:
axbxcd
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
68  88 85 25 26 27, 72 07 21 24 27/28 | [Link]
Maii: durgasoftonline@[Link]
DURGASOFT
abcd

C:\prakashclasses>java Test
Enter any string:
axbxcxdx
abcd

16) Implement a program to return a new String, where all the adjacent characters
are seperated by a "*".
-------------------------------------------------------------------------------------
"hello" ----> "h*e*l*l*o"
"abc" ------> "a*b*c"
"ab" -------> "a*b"

static String newS(String s,int index)


{
if(index<1)
return [Link](index);
return newS(s,index-1)+"*"+[Link](index);
}

Ex:
import [Link].*;

class Demo
{
static String newS(String s,int index)
{
if(index<1)
return [Link](0,index+1);//[Link](index)+"";
return newS(s,index-1)+"*"+[Link](index);
}
}

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner([Link]);
[Link]("Enter any string:");
String s = [Link]();
[Link]([Link](s,[Link]()-1));//abc ---> a*b*c
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
69  88 85 25 26 27, 72 07 21 24 27/28 | [Link]
Maii: durgasoftonline@[Link]
DURGASOFT
}
}

output:
-------
C:\prakashclasses>javac [Link]

C:\prakashclasses>java Test
Enter any string:
abcdef
a*b*c*d*e*f

17) Implement a program to return new string where identical adjcent chars are sep
by *
---------------------------------------------------------------------------------------
Ex:

abc ----> abc


hello --> hel*lo
xxyy ---> x*xy*y

static String newS(String s,int index)


{
if(index<1)
return [Link](0,index+1);
if([Link](index-1)==[Link](index))
return newS(s,index-1)+"*"+[Link](index);
else
return newS(s,index-1)+[Link](index);
}

import [Link].*;

class Demo
{
static String newS(String s,int index)
{
if(index<1)
return [Link](0,index+1);
if([Link](index-1)==[Link](index))
return newS(s,index-1)+"*"+[Link](index);
else
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
70  88 85 25 26 27, 72 07 21 24 27/28 | [Link]
Maii: durgasoftonline@[Link]

You might also like