가능한 한 분수를 단순화해야합니다. Java 여야합니다.num이 모두 int 일 때 분수를 단순화하는 방법
이것은 내가 지금까지
if (numerator != 0)
{
numerator += denominator;
denominator += numerator /2;
}
가능한 한 분수를 단순화해야합니다. Java 여야합니다.num이 모두 int 일 때 분수를 단순화하는 방법
이것은 내가 지금까지
if (numerator != 0)
{
numerator += denominator;
denominator += numerator /2;
}
난 당신이 자바 더 많은 연습이 필요하다는 것을 말하는 것으로 시작하겠습니다 무슨이다. 코드는
if (numerator != 0)
{
int common = gcd(Math.abs(numerator), denominator); // Gets a common denominator and uses abs to make sure it is positive.
numerator = numerator/common; // Divides top number by common #
denominator = denominator/common; // Divides bottom number by common #
}
당신은 import java.util.Math;
해야합니다 그리고 당신은 내가했던 것처럼 또한 GCD를 얻을 수있을 것이다 ... 근처에도 없습니다. GCD을 받으려면
while (num1 != num2)
{
if (num1 > num2)
{
num1 = num1 - num2;
}
else
{
num2 = num2 - num1;
}
}
return num1;
이 정보가 도움이되기를 바랍니다. 당신이 그것을 이해하면 너무 어렵지 않습니다. 더 궁금한 점이 있으면 알려주세요.
while 루프가 GCD 메서드에서 수행하는 것을 얻지 못합니다 – user3295249
@ user3295249 while 루프를 실행하여 분자가 분모와 같지 않은지 확인했습니다. 그렇다면 1로 단순화됩니다. 왜냐하면 1과 같지 않으므로 numerator> den이면 동사를 감산합니다. 분모에 대한 부사장 – ChriskOlson
그 gcd 방법은 대단히 비효율적입니다. @ SpiderPig의 대답 중 하나를 사용하십시오. –
btw. 가능한 가장 짧은 gcd 방법은 이것입니다.
static int gcd(int a, int b) {
if(b == 0) return a;
else return gcd(b, a%b);
}
뺄셈을 사용하는 것보다 훨씬 빠릅니다.
왜 mod by a by b? 어떻게 당신에게 가치를 줄까요 ?? – user3295249
[분수를 단순화하는 방법?] (http://stackoverflow.com/questions/5287514/how-to-simplify-fractions) – OldProgrammer
당신의 시도는 완전히 무의미 해 보입니다. 나는 당신이 그것에 대한 적절한 알고리즘을 찾을 수있을 것이라고 확신합니다. 가장 큰 공통 제수가 필요합니다. – sashkello