翁凯_面向对象程序设计_设计一个表示分数的类Fraction




/**
 * Created by yueyue on 2/20/17.
 */
import java.util.Scanner;

public class test_1_1 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Fraction a = new Fraction(in.nextInt(), in.nextInt());
        Fraction b = new Fraction(in.nextInt(),in.nextInt());
        a.print();
        b.print();
        a.plus(b).print();
        a.multiply(b).plus(new Fraction(5,6)).print();
        a.print();
        b.print();
        in.close();
    }

}

class Fraction
{
   int numerator;
   int denominator;

   Fraction(int numerator,int denominator)
   {
       this.numerator = numerator;
       this.denominator = denominator;
   }

   double todouble(Fraction x)
   {
       double res = (double)x.numerator / (double)x.denominator;
       return res;
   }

   Fraction plus(Fraction r)
   {
       int product = this.denominator * r.denominator;
       int new_numerator = this.numerator * r.denominator + this.denominator * r.numerator;
       int new_denominator =  product;
       Fraction x = new Fraction(new_numerator,new_denominator);
       return x;
   }

   Fraction multiply(Fraction r)
   {
       int new_numerator = this.numerator * r.numerator;
       int new_denominator = this.denominator * r.denominator;
       Fraction x = new Fraction(new_numerator,new_denominator);
       return x;
   }

   void print()
   {
       if(numerator == 1)
       {
           if(denominator == 1)
               System.out.println("1");
           else
               System.out.println("1" + "/" + denominator);
       }
       else
       {
           int k = 1;
           int gcd = 1;
           while (k <= numerator)
           {
               if((numerator % k == 0)  && (denominator % k == 0))
               {
                   gcd = k;
               }
               k++;
           }
           if((numerator / gcd == 1)  && (denominator / gcd == 1))
           {
               System.out.println("1");
           }
           else
               System.out.println((numerator / gcd) + "/" + (denominator / gcd));
       }
   }

}

















猜你喜欢

转载自blog.csdn.net/YY_worhol/article/details/60580778
今日推荐