[go: up one dir, main page]

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

Java-With-DSA (6)

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)
0 views10 pages

Java-With-DSA (6)

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
You are on page 1/ 10

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(System.in);
int n = obj.nextInt();
System.out.println(Demo.convert(n));
}
}

output:
-------
C:\prakashclasses>javac Test.java

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 | www.durgasoftonline.com
Maii: durgasoftonline@gmail.com
DURGASOFT
0+10*110 = 1100

version2:
---------
import java.util.*;

class Demo
{
static void convert(int n)
{
if(n==0)
{
System.out.print("");
}
else
{
convert(n/2);
System.out.print(n%2);
}
}
}

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner(System.in);
int n = obj.nextInt();
Demo.convert(n);
}
}

Logic:

static void convert(int n)


{
if(n!=0)
{
convert(n/2);
System.out.print(n%2);
}
}
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
62  88 85 25 26 27, 72 07 21 24 27/28 | www.durgasoftonline.com
Maii: durgasoftonline@gmail.com
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 java.util.*;

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(System.in);
int n = obj.nextInt();
for(int i=0;i<n;i++){
System.out.print(Demo.fib(i)+", ");
}
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
63  88 85 25 26 27, 72 07 21 24 27/28 | www.durgasoftonline.com
Maii: durgasoftonline@gmail.com
DURGASOFT
}
}

output:
-------
C:\prakashclasses>javac Test.java

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 java.util.*;

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(System.in);
System.out.println("Enter n1 value:");
int n1=obj.nextInt();
System.out.println("Enter n2 value:");
int n2=obj.nextInt();
DURGASOFT, # 202, 2nd Floor, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,
64  88 85 25 26 27, 72 07 21 24 27/28 | www.durgasoftonline.com
Maii: durgasoftonline@gmail.com
DURGASOFT
System.out.println(Demo.lcm(n1,n2));
}
}

output:
-------
C:\prakashclasses>javac Test.java

C:\prakashclasses>javac Test.java

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 java.util.*;

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 | www.durgasoftonline.com
Maii: durgasoftonline@gmail.com
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(System.in);
System.out.println("Enter n1 value:");
int n1=obj.nextInt();
System.out.println("Enter n2 value:");
int n2=obj.nextInt();
System.out.println(Demo.gcd(n1,n2));
}
}

output:
-------
C:\prakashclasses>javac Test.java

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 java.util.*;

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

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner(System.in);
System.out.println("Enter any String:");
String s = obj.nextLine();
System.out.println(Demo.strrev(s));
}
}

ouput:
------
C:\prakashclasses>javac Test.java

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(s.substring(1))+s.charAt(0);
else
return strrev(s.substring(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 | www.durgasoftonline.com
Maii: durgasoftonline@gmail.com
DURGASOFT
import java.util.*;

class Demo
{
static String nox(String s,int index)
{
if(index<0) //Base Condition
return "";
if(s.charAt(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)+s.charAt(index); //recursion, store char in
stack
}
}

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner(System.in);
System.out.println("Enter any string:");
String s = obj.nextLine();
System.out.println(Demo.nox(s,s.length()-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 | www.durgasoftonline.com
Maii: durgasoftonline@gmail.com
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 s.charAt(index);
return newS(s,index-1)+"*"+s.charAt(index);
}

Ex:
import java.util.*;

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

class Test
{
public static void main(String[] args)
{
Scanner obj = new Scanner(System.in);
System.out.println("Enter any string:");
String s = obj.nextLine();
System.out.println(Demo.newS(s,s.length()-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 | www.durgasoftonline.com
Maii: durgasoftonline@gmail.com
DURGASOFT
}
}

output:
-------
C:\prakashclasses>javac Test.java

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 s.substring(0,index+1);
if(s.charAt(index-1)==s.charAt(index))
return newS(s,index-1)+"*"+s.charAt(index);
else
return newS(s,index-1)+s.charAt(index);
}

import java.util.*;

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

You might also like