如何将 Java 中的假分数转换为带分数?
How do I convert an improper fraction to a mixed number in Java?
我正在尝试 2002 年挑战赛的 ccc j4 或 s2。我目前有一个函数可以简化分数,但它给出的是带分数。该函数的输出是一个字符串,我想我需要另一个函数将其转换为带分数。任何帮助,将不胜感激。谢谢!
这是我用来转换的函数:
public static long gcm(long a, long b) {
return b == 0 ? a : gcm(b, a % b);
}
public static String asFraction(long a, long b) {
long gcm = gcm(a, b);
return (a / gcm) + "/" + (b / gcm);
}
输出假分数,但我想要带分数。我怎样才能得到这个? P.S。英语不是我的母语。
由于这是挑战的一部分,我不会提供确切的答案,但我要关注的是:带分数是一个整数后跟一个适当的分数。你有一个不正确的分数。如何将假分数转换为带分数?
举个简单的例子,11/4
。我们如何将其写成带分数?我们会写 2 3/4
,因为:
2
是小于11/4的最大整数。
2
是8/4,剩下3/4为真分数。
- 因此整数部分是
2
,真分数是3/4
,给我们答案。
因此,给定一个假分数 n/d
,获得带分数的一种方法是采用 k = floor[n/d]
和 return k + (n - kd)/d
.
希望对您有所帮助!
我正在尝试 2002 年挑战赛的 ccc j4 或 s2。我目前有一个函数可以简化分数,但它给出的是带分数。该函数的输出是一个字符串,我想我需要另一个函数将其转换为带分数。任何帮助,将不胜感激。谢谢!
这是我用来转换的函数:
public static long gcm(long a, long b) {
return b == 0 ? a : gcm(b, a % b);
}
public static String asFraction(long a, long b) {
long gcm = gcm(a, b);
return (a / gcm) + "/" + (b / gcm);
}
输出假分数,但我想要带分数。我怎样才能得到这个? P.S。英语不是我的母语。
由于这是挑战的一部分,我不会提供确切的答案,但我要关注的是:带分数是一个整数后跟一个适当的分数。你有一个不正确的分数。如何将假分数转换为带分数?
举个简单的例子,11/4
。我们如何将其写成带分数?我们会写 2 3/4
,因为:
2
是小于11/4的最大整数。2
是8/4,剩下3/4为真分数。- 因此整数部分是
2
,真分数是3/4
,给我们答案。
因此,给定一个假分数 n/d
,获得带分数的一种方法是采用 k = floor[n/d]
和 return k + (n - kd)/d
.
希望对您有所帮助!