File tree Expand file tree Collapse file tree
src/main/java/com/packt/datastructuresandalg/lesson4/activity/egyptian Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package com .packt .datastructuresandalg .lesson4 .activity .egyptian ;
2+
3+ import java .util .List ;
4+
5+ public class EgyptianFractions {
6+ public List <Long > build (Long numerator , Long denominator ) { return null ; }
7+
8+ public static void printResult (Long numerator , Long denominator ) {
9+ EgyptianFractions fractions = new EgyptianFractions ();
10+ List <Long > ds = fractions .build (numerator , denominator );
11+ System .out .print (numerator + "/" + denominator + " =" );
12+ for (int i = 0 ; i < ds .size (); i ++) {
13+ System .out .print (" 1/" + ds .get (i ));
14+ if (i + 1 < ds .size ())
15+ System .out .print (" +" );
16+ else
17+ System .out .print ("\n " );
18+ }
19+ }
20+
21+ public static void main (String [] args ) {
22+ printResult (2l , 3l );
23+ printResult (6l , 14l );
24+ printResult (12l , 13l );
25+ }
26+ }
Original file line number Diff line number Diff line change 1+ package com .packt .datastructuresandalg .lesson4 .activity .egyptian .solution ;
2+
3+ import java .util .ArrayList ;
4+ import java .util .List ;
5+
6+ public class EgyptianFractions {
7+ public List <Long > build (Long numerator , Long denominator ) {
8+ if (numerator == 0 || denominator == 0 )
9+ return new ArrayList <>();
10+
11+ if (denominator % numerator == 0 ) {
12+ List <Long > l = new ArrayList <>();
13+ l .add (denominator / numerator );
14+ return l ;
15+ }
16+
17+ Long n = denominator / numerator + 1 ;
18+ List <Long > r = build (numerator * n - denominator , denominator * n );
19+ r .add (n );
20+ return r ;
21+ }
22+
23+ public static void printResult (Long numerator , Long denominator ) {
24+ EgyptianFractions fractions = new EgyptianFractions ();
25+ List <Long > ds = fractions .build (numerator , denominator );
26+ System .out .print (numerator + "/" + denominator + " =" );
27+ for (int i = 0 ; i < ds .size (); i ++) {
28+ System .out .print (" 1/" + ds .get (i ));
29+ if (i + 1 < ds .size ())
30+ System .out .print (" +" );
31+ else
32+ System .out .print ("\n " );
33+ }
34+ }
35+
36+ public static void main (String [] args ) {
37+ printResult (2l , 3l );
38+ printResult (6l , 14l );
39+ printResult (12l , 13l );
40+ }
41+ }
You can’t perform that action at this time.
0 commit comments