java - 在Java中如何将假分数转换为带分数?

标签 java fractions

我正在尝试使用 ccc j4 或 s2 参加 2002 年挑战赛。我目前有一个简化分数的函数,但它给出了一个带分数。该函数的输出是一个字符串,我想我需要另一个函数将其转换为带分数。任何帮助,将不胜感激。谢谢!

这是我用于转换的函数:

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);
}

它输出一个假分数,但我想要一个带分数。我怎样才能得到这个?附:英语不是我的母语。

最佳答案

由于这是挑战的一部分,因此我不会提供确切的答案,但我重点关注的是:带分数是一个整数后跟一个真分数。你有一个不恰当的分数。如何将假分数转换为带分数?

让我们举一个简单的例子,比如11/4。我们如何将其写成带分数?我们会写 2 3/4,因为:

  • 2 是小于 11/4 的最大整数。
  • 2 是 8/4,剩下 3/4 为真分数。
  • 因此整数部分为 2,真分数为 3/4,这就是答案。

因此,给定一个假分数 n/d,获得带分数的一种方法是采用 k = Floor[n/d],然后返回 k + (n - kd)/d

希望有帮助!

关于java - 在Java中如何将假分数转换为带分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55988032/

相关文章:

java - 如何修复 security.xml 文件

java - Android:(亮度)设置更改后如何刷新屏幕

javascript - 将循环小数转换为分数

c++ - 截断 float 以便只有两位小数

c - 如何同时读带分数和正分数?

java - 错误:Execution failed for task ':app:transformClassesWithMultidexlistForDebug

java - 如何为 JUnit 模拟多个用户输入

Java 代理中的 Java NullPointerException

java - Java 自相矛盾吗?

java - 我如何进行像 5' 3"1/2 这样的测量,然后将其乘以 1.414 并在 android java 上以相同的格式显示答案