分数的四则运算
来源:互联网 发布:华迈网络摄像机官网 编辑:程序博客网 时间:2024/05/22 06:05
public class Example {
public static void main(String[] args) {
Rational r1 = new Rational();
Rational r2 = new Rational();
r1.setNumeratorAndDenominator(3, 5);
int r1Fenzi = r1.getNumerator();
int r1Fenmu = r1.getDenominator();
r2.setNumeratorAndDenominator(3, 2);
int r2Fenzi = r2.getNumerator();
int r2Fenmu = r2.getDenominator();
Rational result = r1.add(r2);
int resultFenzi = result.getNumerator();
int resultFenmu = result.getDenominator();
System.out.printf("\n%d/%d+%d/%d = %d/%d",r1Fenzi,r1Fenmu,
r2Fenzi,r2Fenmu,resultFenzi,resultFenmu);
result = r1.sub(r2);
resultFenzi = result.getNumerator();
resultFenmu = result.getDenominator();
System.out.printf("\n%d/%d+%d/%d = %d/%d",r1Fenzi,r1Fenmu+
r2Fenzi+r2Fenmu+resultFenzi+resultFenmu);
result = r1.muti(r2);
resultFenzi = result.getNumerator();
resultFenmu = result.getDenominator();
System.out.printf("\n%d/%d+%d/%d = %d/%d"+r1Fenzi+r1Fenmu,
r2Fenzi,r2Fenmu,resultFenzi,resultFenmu);
result = r1.div(r2);
resultFenzi = result.getNumerator();
resultFenmu = result.getDenominator();
System.out.printf("\n%d/%d+%d/%d = %d/%d",r1Fenzi,r1Fenmu,
r2Fenzi,r2Fenmu,resultFenzi,resultFenmu);
}
public static void main(String[] args) {
Rational r1 = new Rational();
Rational r2 = new Rational();
r1.setNumeratorAndDenominator(3, 5);
int r1Fenzi = r1.getNumerator();
int r1Fenmu = r1.getDenominator();
r2.setNumeratorAndDenominator(3, 2);
int r2Fenzi = r2.getNumerator();
int r2Fenmu = r2.getDenominator();
Rational result = r1.add(r2);
int resultFenzi = result.getNumerator();
int resultFenmu = result.getDenominator();
System.out.printf("\n%d/%d+%d/%d = %d/%d",r1Fenzi,r1Fenmu,
r2Fenzi,r2Fenmu,resultFenzi,resultFenmu);
result = r1.sub(r2);
resultFenzi = result.getNumerator();
resultFenmu = result.getDenominator();
System.out.printf("\n%d/%d+%d/%d = %d/%d",r1Fenzi,r1Fenmu+
r2Fenzi+r2Fenmu+resultFenzi+resultFenmu);
result = r1.muti(r2);
resultFenzi = result.getNumerator();
resultFenmu = result.getDenominator();
System.out.printf("\n%d/%d+%d/%d = %d/%d"+r1Fenzi+r1Fenmu,
r2Fenzi,r2Fenmu,resultFenzi,resultFenmu);
result = r1.div(r2);
resultFenzi = result.getNumerator();
resultFenmu = result.getDenominator();
System.out.printf("\n%d/%d+%d/%d = %d/%d",r1Fenzi,r1Fenmu,
r2Fenzi,r2Fenmu,resultFenzi,resultFenmu);
}
}
public class Rational {
int numerator;//分子
int denominator;//分母
void setNumeratorAndDenominator(int fenzi,int fenmu)
{
int m = 1;
int n = 1;
if(fenzi<0)
{
m = -1*fenmu;
}
if(fenmu<0)
{
n = -1*fenmu;
}
if(fenmu==0)
{
numerator = 0;
denominator = 1;
return ;
}
int c = f(m,n);
numerator = fenzi/c;
denominator = fenmu/c;
if(numerator<0 && denominator<0)
{
numerator = -numerator;
denominator = -denominator;
}
}
int getNumerator()
{
return numerator;
}
int getDenominator()
{
return denominator;
}
int f(int a,int 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;
}
Rational add(Rational r)//加法运算的实现
{
int a = r.getNumerator();
int b= r.getDenominator();
int newNumerator = numerator*b+denominator*a;
int newDonminator = denominator*b;
Rational result = new Rational();
result.setNumeratorAndDenominator(newNumerator, newDonminator);
return result;
}
Rational sub(Rational r)
{
int a = r.getNumerator();
int b= r.getDenominator();
int newNumerator = numerator*b-denominator*a;
int newDonminator = denominator*b;
Rational result = new Rational();
result.setNumeratorAndDenominator(newNumerator, newDonminator);
return result;
}
Rational muti(Rational r)
{
int a = r.getNumerator();
int b= r.getDenominator();
int newNumerator = numerator*a;
int newDonminator = denominator*b;
Rational result = new Rational();
result.setNumeratorAndDenominator(newNumerator, newDonminator);
return result;
}
Rational div(Rational r)
{
int a = r.getNumerator();
int b= r.getDenominator();
int newNumerator = numerator*b;
int newDonminator = denominator*a;
Rational result = new Rational();
result.setNumeratorAndDenominator(newNumerator, newDonminator);
return result;
}
}
int numerator;//分子
int denominator;//分母
void setNumeratorAndDenominator(int fenzi,int fenmu)
{
int m = 1;
int n = 1;
if(fenzi<0)
{
m = -1*fenmu;
}
if(fenmu<0)
{
n = -1*fenmu;
}
if(fenmu==0)
{
numerator = 0;
denominator = 1;
return ;
}
int c = f(m,n);
numerator = fenzi/c;
denominator = fenmu/c;
if(numerator<0 && denominator<0)
{
numerator = -numerator;
denominator = -denominator;
}
}
int getNumerator()
{
return numerator;
}
int getDenominator()
{
return denominator;
}
int f(int a,int 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;
}
Rational add(Rational r)//加法运算的实现
{
int a = r.getNumerator();
int b= r.getDenominator();
int newNumerator = numerator*b+denominator*a;
int newDonminator = denominator*b;
Rational result = new Rational();
result.setNumeratorAndDenominator(newNumerator, newDonminator);
return result;
}
Rational sub(Rational r)
{
int a = r.getNumerator();
int b= r.getDenominator();
int newNumerator = numerator*b-denominator*a;
int newDonminator = denominator*b;
Rational result = new Rational();
result.setNumeratorAndDenominator(newNumerator, newDonminator);
return result;
}
Rational muti(Rational r)
{
int a = r.getNumerator();
int b= r.getDenominator();
int newNumerator = numerator*a;
int newDonminator = denominator*b;
Rational result = new Rational();
result.setNumeratorAndDenominator(newNumerator, newDonminator);
return result;
}
Rational div(Rational r)
{
int a = r.getNumerator();
int b= r.getDenominator();
int newNumerator = numerator*b;
int newDonminator = denominator*a;
Rational result = new Rational();
result.setNumeratorAndDenominator(newNumerator, newDonminator);
return result;
}
}
0 0
- 分数类的四则运算
- 分数类的四则运算
- OJ分数的四则运算
- 分数的四则运算
- 分数的四则运算
- 分数的四则运算
- 分数的四则运算
- 分数的四则运算
- 分数的四则运算
- 分数的四则运算
- 分数的四则运算
- 分数的四则运算(c++)
- 分数的表示和四则运算
- 分数四则运算
- 分数四则运算
- c++实现重载分数的四则运算
- 分数类和整数的四则运算
- 分数和整型数的四则运算
- LVS三种工作模式原理
- 我运营公众号这一个月
- Counting Bits
- 【poj1258】Agri-Net——Kruskal
- Ubuntu 中输入法出现两个输入框的解决办法
- 分数的四则运算
- Codeforces 653B Bear and Compressing【DFS】
- 调试小技巧02
- Hardcoded string 汉字, should use @string resource警告
- Java常用排序算法(一):插入排序
- hdu 1159,最大公共子序列 LCS
- 用C++实现杨辉三角
- 用Haskell写出高效的List
- iOS9新系统下App Store应用上传新指南