我正在尝试创建一个函数,该函数将生成给定数字的所有最简单分数的列表。我不会讨论给出一个例子的语言,这更像是我试图理解的逻辑。
不必要:1,2 / 4
示例:12
我不确定我是否正朝着正确的方向前进,通过迭代每一个可能的部分,或者是否有更好的方法,或者如何找到最简单的分数表达式。
伪代码:
denominator = 12;
for (i = 1; i <= denominator; i++) {
for (n = 1; n <= denominator; n++) {
// find simplest expression of fraction when n!=i
}
}
非常感谢任何帮助,谢谢!
答案 0 :(得分:2)
您不需要内部for循环,只需要method to find the Greatest Common Divisor以便reduce the fraction:
int denominator = 12;
for (int i = 1; i < denominator; i++) { // note change from <= to <
int gcd = GCD(i, denominator);
// answer will be "{i/gcd}/{denominator/gcd}"
}