分数四则运算java_用java具体代码实现分数(即有理数)四则运算

用java具体代码实现分数(即有理数)四则运算

1,背景

Java老师布置了一个关于有理数运算的题目,因为参考书上有基本代码,所以自己主要是对书上代码做了一点优化,使其用户交互性更加友好以及代码封装性更强

2,说明:

分数也称作有理数,是我们很熟悉的一种数。有时希望程序能对分数进行四则运算,而且两个分数四则运算的结果仍然是分数。下面是具体实现

3,java代码具体实现

3.1 运算类封装

package Rational;

import java.util.StringTokenizer;

/**

* @author sunkun

* 分数四则运算

*/

public class Calculator {

int numerator; // 分子

int denominator; // 分母

Calculator(){

}

Calculator(int a,int b){

if(a == 0){

numerator = 0;

denominator = 1;

}

else{

setNumeratorAndDenominator(a,b);

}

}

void setNumeratorAndDenominator(int a, int b){ // 设置分子和分母

int c = f(Math.abs(a),Math.abs(b)); // 计算最大公约数

numerator = a / c;

denominator = b / c;

if(numerator<0 && denominator<0){

numerator = - numerator;

denominator = - denominator;

}

}

int getNumerator(){

return numerator;

}

int getDenominator(){

return denominator;

}

int f(int a,int b){ // 求a和b的最大公约数

if(a < b){

int c = a;

a = b;

b = c;

}

int r = a % b;

while(r != 0){

a = b;

b = r;;

r = a % b;

}

return b;

}

Calculator add(Calculator r){ // 加法运算

int a = r.getNumerator();

int b = r.getDenominator();

int newNumerator = numerator * b + denominator * a;

int newDenominator = denominator * b;

你可能感兴趣的:(分数四则运算java)