Skip to content

Commit

Permalink
Merge pull request #606 from Asvenomdc/Asvenomdc-profile
Browse files Browse the repository at this point in the history
Egyptian Fraction
  • Loading branch information
SK7here authored Oct 26, 2019
2 parents 307a9c0 + 9c436e1 commit 63b8d0c
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions Algorithms/Greedy Algorithm/Egyptian Fraction.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#include <iostream>
using namespace std;

void printEgyptian(int nr, int dr)
{
// If either numerator or denominator is 0
if (dr == 0 || nr == 0)
return;

// If numerator divides denominator, then simple division
// makes the fraction in 1/n form
if (dr%nr == 0)
{
cout << "1/" << dr/nr;
return;
}

// If denominator divides numerator, then the given number
// is not fraction
if (nr%dr == 0)
{
cout << nr/dr;
return;
}

// If numerator is more than denominator
if (nr > dr)
{
cout << nr/dr << " + ";
printEgyptian(nr%dr, dr);
return;
}

// We reach here dr > nr and dr%nr is non-zero
// Find ceiling of dr/nr and print it as first
// fraction
int n = dr/nr + 1;
cout << "1/" << n << " + ";

// Recur for remaining part
printEgyptian(nr*n-dr, dr*n);
}

// Driver Program
int main()
{
int nr = 6, dr = 14;
cout << "Egyptian Fraction Representation of "
<< nr << "/" << dr << " is\n ";
printEgyptian(nr, dr);
return 0;
}

0 comments on commit 63b8d0c

Please sign in to comment.