import mypackage.*;
public class Text {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Rational r1 = new Rational();
r1.setNumerator(1);
r1.setDenominator(5);
Rational r2 = new Rational();
r2.setNumerator(3);
r2.setDenominator(2);
Rational result = r1.add(r2);
int a = result.getNumerator();
int b = result.getDenominator();
System.out.println("1/5+3/2 ="+a+"/"+b);
result = r1.sub(r2);
a = result.getNumerator();
b = result.getDenominator();
System.out.println("1/5-3/2 ="+a+"/"+b);
result = r1.muti(r2);
a = result.getNumerator();
b = result.getDenominator();
System.out.println("1/5×3/2 ="+a+"/"+b);
result = r1.div(r2);
a = result.getNumerator();
b = result.getDenominator();
System.out.println("1/5÷3/2 ="+a+"/"+b);
int n = 10 ,k = 1;
System.out.println("计算 2/1+3/2+5/3+8/5+13/8+...的前"+n+"项和.");
Rational sum = new Rational();
sum.setNumerator(0);
Rational item = new Rational();
item.setNumerator(2);
item.setDenominator(1);
while(k<=n){
sum = sum.add(item);
k++;
int fenzi = item.getNumerator();
int fenmu = item.getDenominator();
item.setNumerator(fenzi+fenmu);
item.setDenominator(fenzi);
}
a = sum.getNumerator();
b = sum.getDenominator();
System.out.println("用分数表示:");
System.out.println(a+"/"+b);
double doubleResult = (a*1.0)/b;
System.out.println("用小数表示:");
System.out.println(doubleResult);
}
}
package mypackage;
public class Rational {
//分子
int numerator = 1;
int denominator = 1;
//设置分子
public void setNumerator(int a){
//计算最大公约数
int c = f(Math.abs(a),denominator);
numerator = a/c;
denominator = denominator/c;
if(numerator<0 && denominator<0 ){
numerator = -numerator;
denominator = -denominator;
}
}
//设置分母
public void setDenominator(int b){
//计算最大公约数
int c = f(Math.abs(b),denominator);
numerator = numerator/c;
denominator = b/c;
if(numerator<0 && denominator<0 ){
numerator = -numerator;
denominator = -denominator;
}
}
//获得分子
public int getNumerator(){
return numerator;
}
//获得分母
public int getDenominator(){
return denominator;
}
//求a、b的最大公约数
public int f(int a ,int b){
if(a == 0){
return 1;
}
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;
}
//加法运算
public Rational add(Rational r){
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * b + denominator * a;
int newDenominator = denominator * b;
Rational result = new Rational();
result.setNumerator(newNumerator);
result.setDenominator(newDenominator);
return result;
}
//减法运算
public Rational sub(Rational r){
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * b - denominator * a;
int newDenominator = denominator * b;
Rational result = new Rational();
result.setNumerator(newNumerator);
result.setDenominator(newDenominator);
return result;
}
//乘法运算
public Rational muti(Rational r){
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * a;
int newDenominator = denominator * b;
Rational result = new Rational();
result.setNumerator(newNumerator);
result.setDenominator(newDenominator);
return result;
}
//除法运算
public Rational div(Rational r){
int a = r.getNumerator();
int b = r.getDenominator();
int newNumerator = numerator * b;
int newDenominator = denominator * a;
Rational result = new Rational();
result.setNumerator(newNumerator);
result.setDenominator(newDenominator);
return result;
}
}
package liushuixian;
public class ComputerAver {
}
package liushuixian;
public class DelScore {
}
package liushuixian;
public class InputSorce {
}
package liushuixian;
public class Line {
}
11-20
06-23
06-23
06-23
06-23
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交