蓝桥杯——带分数java
时间: 2023-08-29 19:12:50 浏览: 150
在Java中,带分数可以用分数类来表示。下面是一个简单的带分数类的实现:
```java
public class Fraction {
private int integer;
private int numerator;
private int denominator;
public Fraction(int integer, int numerator, int denominator) {
this.integer = integer;
this.numerator = numerator;
this.denominator = denominator;
simplify();
}
private void simplify() {
if (numerator < 0 && denominator < 0) {
numerator = -numerator;
denominator = -denominator;
}
if (denominator < 0) {
numerator = -numerator;
denominator = -denominator;
}
if (integer < 0 && numerator > 0) {
numerator = -numerator;
}
if (integer < 0 && numerator == 0) {
integer = -integer;
}
if (numerator >= denominator) {
integer += numerator / denominator;
numerator = numerator % denominator;
}
int gcd = gcd(numerator, denominator);
numerator /= gcd;
denominator /= gcd;
}
private int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
public Fraction add(Fraction other) {
int newNumerator = this.numerator * other.denominator + other.numerator * this.denominator;
int newDenominator = this.denominator * other.denominator;
int newInteger = this.integer + other.integer;
return new Fraction(newInteger, newNumerator, newDenominator);
}
public String toString() {
if (integer == 0 && numerator == 0) {
return "0";
}
String result = "";
if (integer != 0) {
result += integer;
if (numerator != 0) {
result += "_";
}
}
if (numerator != 0) {
result += numerator + "/" + denominator;
}
return result;
}
}
```
这个带分数类实现了以下功能:
- 构造函数可以根据整数部分、分子和分母创建一个带分数对象。
- simplify() 方法可以将带分数对象化简,如将负号移到分子上、将整数部分和真分数部分合并、将分数化简等。
- add() 方法可以将两个带分数对象相加,返回一个新的带分数对象。
- toString() 方法可以将带分数对象转换为字符串形式。
这个类实现了带分数的加法操作,可以参考这个类来实现其他的运算操作。
阅读全文