0
question on lowest term fraction using java
when the numerator is 5 and the denominator is 20 I get the value of 1/4, but when the numerator is 20 and the denominator is 5 I get the value of 0/0 my workbook said, it's supposed to be 4/1. here's my code void determineLowestTerm(){ //code here for(int i = getNum(); 1 > 0; i--){ if((getNum() % i == 0) && (getDen() % i==0)){ System.out.println("\t LOWEST TERM \t\t: " + (getNum()/i) + "/" + (getDen()/i)); break; }else System.out.println("\t LOWEST TERM \t\t: " + "0" + "/" + "0"); break; } } //end lowestterm
2 ответов
+ 18
● seeing your code, I think you should first find whether numerator is having absolute smaller value or denominator
● after that run a loop for i from 1 to (smaller value among numerator & denominator) & in each iteration use condition (numerator%i==0 && denominator%i==0) , if this condition evaluates to true then do {numerator=numerator/i; denominator=denominator/i;}
//just need to divide both numerator & denominator by the common factors.
+ 6
In your for loop you have 1 > 0 instead of i > 0. Maybe a typo.
If I'm right?
getNum () = 20
getDen () = 5
at the beginning i = 20
20% 20 = 0; 20%5 = 0
true
getNum () = 5
getDen () = 20
i = 5
5% 5 = 0
5% 20 = 5
false
break; --> you leave the loop so i can not change.
I would try this:
compare getNum with getDen ()
--> i = highest num
getNum = 5
getDen = 20
i = 20 (getDen > getNum)
20% 5 = 0
20% 20 = 0
true
print i/getNum and i/getDen