I came up with an algorithm for this problem, but I think it is too long and can be executed with fewer lines of code. Sorry for the poor indentation, it is trying hard to align everything with overflow.
#include <iostream>
using namespace std;
(string decimalNumber, float&numerator, float& denominator )
{ float number; string valueAfterPoint =decimalNumber.substr(decimalNumber.find("." ((decimalNumber.length() -1) ));
int length = valueAfterPoint.length();
numerator = atof(valueAfterPoint.c_str());
for (; length > 0; length--)
numerator *= 10;
do
denominator *=10;
while (denominator < numerator);
void simplifying (float& numerator, float& denominator) { int maximumNumber = 9;
bool isDivisble;
if(int(numerator) % int(denominator) == 0) {
numerator /= denominator;
denominator = 1;
return; }
for(; maximumNumber > 0;maximumNumber --){
isDivisble = ((int(numerator) % maximumNumber == 0) && int(denominator)% maximumNumber == 0);
if(isDivisble)
{
numerator /= maximumNumber;
denominator /= maximumNumber;
}
int stop = numerator + denominator;
if (stop < 17)
{
return;
} } }
source
share