求分数--推荐指数(★★★★★)

来源:互联网 发布:深入java虚拟机 编辑:程序博客网 时间:2024/04/29 03:16
import java.util.Scanner;public class Main { public static void main(String[] args) {  Scanner in = new Scanner(System.in);  Fraction a = new Fraction(in.nextInt(), in.nextInt());       //创建类Fraction的对象a  Fraction b = new Fraction(in.nextInt(),in.nextInt());        //创建类Fraction的对象b  a.print();                          //通过.运算符调用a对象的print函数  b.print();                          //通过.运算符调用b对象的print函数  a.plus(b).print();                  //通过.运算符先调用a对象的plus函数,再调用a对象的print函数  a.multiply(b).plus(new Fraction(5,6)).print();//通过。运算符先调用a对象的multiply函数,再调用a对象的plus函数,再调用a对象的print函数  a.print();                                    //通过.运算符调用a对象的print函数  b.print();                                    //通过.运算符调用b对象的print函数  in.close();                                   //关闭文件 }} //####类Fraction:class Fraction{ int a;       //成员变量a表示分子 int b;       //成员变量b表示分母 Fraction(int c , int d) {      //构造函数, 作用:构造一个a/b的分数  this.a = c;  this.b = d;  //print();  //String c=a+"/"+b;  //System.out.println(c); } double toDouble( ) {//将分数转换为double   return a*1.0/b ; } Fraction plus(Fraction r) {//将自己的分数和r的分数相加,产生一个新的Fraction的对象m   Fraction m = new Fraction(0, 1);    m.a = a * r.b + b * r.a;        //新分数的分子   m.b = b * r.b;    //新分数的分母   return m; } Fraction multiply(Fraction r) {//将自己的分数和r的分数相乘,产生一个新的Fraction的对象n  Fraction n =new Fraction(0,1);  n.a = a * r.a;  n.b = b * r.b;  return n; } void print() {//用来输出 对象的数据 的函数  int g=this.a;int h=this.b;  if(a==b)  {   System.out.println(1);  }  else     {     int r,gcd;      while(b>0)            {//求出分子和分母的最小公约数gcd,然后分子分母同时除去gcd,达到化简分数的目的                r=a%b;                a=b;                b=r;            }     gcd=a;     String e =(g/gcd)+"/"+(h/gcd);     System.out.println(e);     this.a=g;this.b=h;    } }}
1 0
原创粉丝点击