作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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/
这是我正在尝试做的示例代码。当然,这需要很长时间才能处理 (410^8)。 编辑: 目标是允许在 0.0*/1 和 100.*/1 的近似范围内输入实数,例如.457473343788374/1, 8
我是一名优秀的程序员,十分优秀!