6-1 分数计算 (10分)

该题目实现了分数的表示,分数的加法和乘法。该题目的输入不需要考虑输入分母为“0”。注意,例如当输入是分子是4,分母是8的时候,分数应该是1/2,而不是4/8.

方法定义:
请仔细阅读测试样例中的调用

裁判测试程序样例:
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 b = new Fraction(in.nextInt(),in.nextInt());
a.print();
b.print();
a.plus(b).print();
a.multiply(b).print();
in.close();
}
}

/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:

1 2 3 4
输出样例:
在这里给出相应的输出。例如:

1/2 3/4 5/4 3/8

答案:

class Fraction
	    {
	    	int a, b;
	    	
	    	Fraction(int x, int y)
	    	{
	    		this.a = x;
	    		this.b = y;	
	    	}

	    	Fraction plus(Fraction x)
	    	{
	    		Fraction r = new Fraction(0,0);
	    		r.a =this.a * x.b + this.b * x.a;//fenzi
	    		r.b =this.b * x.b;//fenmu
	    		return r;
	    	}
	    	
	    	Fraction multiply(Fraction x) 
	    	{
	    		this.a = this.a * x.a;
	    		this.b = this.b * x.b;
	    		return this;
	    	}
	    	void print() 
	    	{
	    		int h ;
	    		 if(this.a > this.b )
	    		 {
	    			  h = GCD(this.a, this.b) ;
	    		 }
	    		 else
	    		 {
	    			 h = GCD(this.b, this.a);
	    		 }
	    		this.a /= h;
	    		this.b /= h;
	    		System.out.print(this.a+"/"+this.b+' ');
	    	}
	    	
	    	public  int GCD(int x,int y)
	    	{
	    		if(x %y == 0) return y;
	    		return GCD(y, x % y);
	    	}
	    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值