分数的计算无非是统一分母,分子作运算就是,所以我的最笨的办法就是做一个统一分母的方法就可以了比方说这样:...
String opr_1=<一个分数>;
String opr_2=<一个分数>;
...private Fraction sepr_mun(String opr){
int flag1=0;
int flag2=0;
Fraction fr=new Fraction();
StringBuffer stb1=new StringBuffer(100,50);//读入字符串,并将分母分离出来
StringBuffer stb2=new StringBuffer(100,50);
stb=opr;
while(stb1[flag1]!='/')
{
stb2[flag1]=stb1[flag1];
flag++;
}
fr.sun=Integer.ParseInt(stb2);
for(;flag<=stb1.length;flag1++){
stb2[flag2]=stb1[flag];
flag2++;
}
fr.mun=Integer.ParseInt(stb2); //分离出的分母
}class Fraction{
public int mun;
public int sun;
}//分数的类class calculate{
public int form_mun_sun(Fraction fr1,Fraction fr2){
if(fr1.mun!=fr2.mun)//统一分母
...//计算最小公倍数
...//计算分子
}
}
.....
我短时间给你写了一下思路,可能有些地方不对,我不记得java里面有直接可以用的api
好像操作符重载是不能用的,如果要使c++,这个就不叫问题了,你说是吧!
String opr_1=<一个分数>;
String opr_2=<一个分数>;
...private Fraction sepr_mun(String opr){
int flag1=0;
int flag2=0;
Fraction fr=new Fraction();
StringBuffer stb1=new StringBuffer(100,50);//读入字符串,并将分母分离出来
StringBuffer stb2=new StringBuffer(100,50);
stb=opr;
while(stb1[flag1]!='/')
{
stb2[flag1]=stb1[flag1];
flag++;
}
fr.sun=Integer.ParseInt(stb2);
for(;flag<=stb1.length;flag1++){
stb2[flag2]=stb1[flag];
flag2++;
}
fr.mun=Integer.ParseInt(stb2); //分离出的分母
}class Fraction{
public int mun;
public int sun;
}//分数的类class calculate{
public int form_mun_sun(Fraction fr1,Fraction fr2){
if(fr1.mun!=fr2.mun)//统一分母
...//计算最小公倍数
...//计算分子
}
}
.....
我短时间给你写了一下思路,可能有些地方不对,我不记得java里面有直接可以用的api
好像操作符重载是不能用的,如果要使c++,这个就不叫问题了,你说是吧!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货