7-24 约分最简分式 (15 分)

7-24 约分最简分式 (15 分)一 题目要求分数可以表示为分子 分母的形式 编写一个程序 要求用户输入一个分数 然后将其约分为最简分式 最简分式是指分子和分母不具有可以约分的成分了 如 6 12 可以被约分为 1 2 当分子大于分母时 不需要表达为整数又分数的形式 即 11 8 还是 11 8 而当分子分母相等时 仍然表达为 1 1 的分数形式 输入格式 输入在一行中给出一个分数 分子和分母中间以斜杠 分隔 如 12 34 表示 34 分之 12

一、题目要求

分数可以表示为分子/分母的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。

输入格式:

输入在一行中给出一个分数,分子和分母中间以斜杠/分隔,如:12/34表示34分之12。分子和分母都是正整数(不包含0,如果不清楚正整数的定义的话)。

提示:在scanf的格式字符串中加入/,让scanf来处理这个斜杠。

输出格式:

在一行中输出这个分数对应的最简分式,格式与输入的相同,即采用分子/分母的形式表示分数。如 5/6表示6分之5。

输入样例:

66/120

输出样例:

二、代码

V1.0

对于公因子予以整除。

import java.util.Scanner; public class Main { 
    public static void main(String[] args) { 
    String input; int i=0, a=0, b=0; Scanner sc = new Scanner(System.in); input = sc.nextLine(); String[] temp = input.split("/"); //split(): 分割某个字符串并以字符串数组形式返回 a = Integer.parseInt(temp[0]); b = Integer.parseInt(temp[1]); for(i=2;i<=a;i++) { 
    if(a%i==0&&b%i==0) { 
    a = a/i; b = b/i; i = 1; } } System.out.println(a+"/"+b); } } 

V2.0

辗转相除法!

import java.util.Scanner; public class Main { 
    public static void main(String[] args) { 
    String input; int temp=0, a=0, b=0, numerator, denominator; Scanner sc = new Scanner(System.in); input = sc.nextLine(); String[] m = input.split("/"); //split(): 分割某个字符串并以字符串数组形式返回 numerator = Integer.parseInt(m[0]); denominator = Integer.parseInt(m[1]); a = numerator; b = denominator; while (b!=0) { 
    temp = a % b; a = b; b = temp; } numerator = numerator/a; denominator = denominator/a; System.out.println(numerator+"/"+denominator); } } 

三、参考

1、5-24 约分最简分式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218312.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午7:33
下一篇 2026年3月18日 上午7:33


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号