java - 打印简化的除法形式
问题描述
public static void main(String[] args) {
int[] y = division(230,6);
System.out.println(y[0] + " " + y[1] + "/" + y[2])
}
private static int[] division(int nominator, int denominator) {
int k = nominator / denominator;
int r = nominator % denominator;
int n = denominator;
int[] arr = { k, r, n };
return arr;
}
}
230/6 的除法将给我 38 + 2/6。我想得到 38 + 1/3,我想要简化形式的分数部分。我不知道如何在java中做到这一点。是否有任何简单的方法可以在不使用 java.util 的内置方法之一的情况下以简化形式获得分数部分。
解决方案
您可以开发一种方法来找到 和 的r
GCD n
:
private static int findGCD(int num1, int num2) {
while (num1 != num2) {
if(num1 > num2)
num1 = num1 - num2;
else
num2 = num2 - num1;
}
return num2;
}
在除法方法中,您可以添加以下代码:
int gcd = findGCD(r, n);
并更换
int[] arr = { k, r, n };
和 :
int[] arr = { k, r/gcd, n/gcd };
推荐阅读
- amazon-web-services - Terraform 添加 aws_api_gateway_integration 响应 json
- angular - ng s 后的 Angular 未处理异常
- javascript - 如何统一 Kotlin 和 Long.js 的划分结果
- reactjs - 如何单击 h1 标题以导航到组件?
- wordpress - 无法使用 WPGQL 获取菜单数据
- arrays - MIPS - 存储整数,排列它们,然后将整数加到一个总和中
- python - Django模板过滤已经呈现的查询集
- java - 如何优化 Hibernate buildSessionFactory();
- readline - 如何使用 readline() 连接字符串
- security - 通过浏览器上传整个 CdRom