java基础:这样设置分子分母是什么意思?直接numerator=a;denominator=b;不就好了

only_one_moment 2015-10-11 11:20:42
书上的例子,这个设置看不懂,谢谢各位辣
package textexample;

public class Rational {
int numerator=1;//分子
int denominator=1;//分母
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;
}
}
void setDenominator(int b){//设置分母
int c=f(numerator,Math.abs(b));//计算最大公约数
numerator=numerator/c;
denominator=b/c;
if(numerator<0&&denominator<0){
numerator=-numerator;
denominator=-denominator;
}
}
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;
}
}
...全文
330 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
飏飏一蝶 2015-10-11
  • 打赏
  • 举报
回复
举个例子,你跟着程序走一遍就知道
原来参数为:1和6,即1/6
调用设置,设置分子为4
计算4和6的最大公约数为2
分子为4/2 =2
分母为6/2=3
最终参数2和3,即2/3
这个类表示的是分数的最简形式
但是bug是只有设置是才表示最简,初始化时不检查..
only_one_moment 2015-10-11
  • 打赏
  • 举报
回复
懂了懂了,谢谢

62,630

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧