您的位置:首页 > 其它

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

2017-03-06 16:19 489 查看




/**
* 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));
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐