Java【问题描述】从键盘输入两个正整数,表示分数的分子和分母,编写程序完成分数的化简,输出化简后的结果,如果结果为整数,只输出整数结果。 【输入形式】从键盘输入两个正整数,两个整数用空格隔开 【输出形式】输出化简后的分子和分母
时间: 2024-09-23 15:13:53 浏览: 64
新人教版七年级上册数学 第2课时 分数化简及有理数的乘除混合运算 重点习题练习复习课件.pptx
为了在Java中完成这个任务,你可以按照以下步骤编写程序:
```java
import java.util.Scanner;
public class FractionReducer {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 输入分数的分子和分母
System.out.println("请输入分数的分子和分母(用空格隔开):");
int numerator = scanner.nextInt();
int denominator = scanner.nextInt();
// 检查分母是否为0,因为0作为分母是未定义的
if (denominator == 0) {
System.out.println("错误:分母不能为0");
} else {
// 计算最大公约数(GCD),用于找到公共因子并简化分数
int gcd = findGCD(numerator, denominator);
// 如果分数可以简化(即最大公约数不为1),则简化它
if (gcd != 1) {
numerator /= gcd;
denominator /= gcd;
}
// 输出化简后的分数
if (denominator == 1) { // 如果分数变为整数,直接输出整数
System.out.printf("%d", numerator);
} else {
System.out.printf("%d/%d", numerator, denominator);
}
}
scanner.close();
}
// 使用欧几里得算法计算最大公约数
private static int findGCD(int a, int b) {
if (b == 0) {
return a;
}
return findGCD(b, a % b);
}
}
```
当你运行这个程序,它会提示你输入分子和分母。然后它会计算它们的最大公约数,简化分数,并根据结果决定输出的是简化后的分数还是整数。
阅读全文