The following example solves a classic elementary problem: "Reduce a given fraction to its lowest terms", e.g. we want to write 2/3, not 4/6. We solve this problem by finding the greatest common divisor (gcd) of the numerator and the denominator by using the famous approach called Euclid's algorithm.
C Code
Iterative solution
Recursive solution
Driver program
Thanks.
C Code
Iterative solution
// Iterative algorithm
int gcd(int a, int b)
{
int temp;
while(b)
{
temp = a % b;
a = b;
b = temp;
}
return(a);
}
Recursive solution
// Recursive algorithm
int gcd_recurse(int a, int b)
{
int temp;
temp = a % b;
if (temp == 0)
{
return(b);
}
else
{
return(gcd_recurse(b, temp));
}
}
Driver program
#include <studio.h>
int gcd(int a, int b);
int gcd_recurse(int a, int b);
int main()
{
printf("\nGCD(%2d,%2d) = [%d]", 6,4, gcd(6,4));
printf("\nGCD(%2d,%2d) = [%d]", 6,4, gcd_recurse(6,4));
return(0);
}
Thanks.







0 comments:
Post a Comment