分数化简java_中国MOOC分数——Java
题目内容:
设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。
这个类的构造函数是:
Fraction(int a, int b)
构造一个a/b的分数。
这个类要提供以下的功能:
double toDouble();
将分数转换为double
Fraction plus(Fraction r);
将自己的分数和r的分数相加,产生一个新的Fraction的对象。注意小学四年级学过两个分数如何相加的哈。
Fraction multiply(Fraction r);
将自己的分数和r的分数相乘,产生一个新的Fraction的对象。
void print();
将自己以“分子/分母”的形式输出到标准输出,并带有回车换行。如果分数是1/1,应该输出1。当分子大于分母时,不需要提出整数部分,即31/30是一个正确的输出。
注意,在创建和做完运算后应该化简分数为最简形式。如2/4应该被化简为1/2。
你写的类要和以下的代码放在一起,并请勿修改这个代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Fraction a = new Fraction(in.nextInt(), in.nextInt());
Fraction b = new Fraction(in.nextInt(),in.nextInt());
a.print();
b.print();
a.plus(b).print();
a.multiply(b).plus(new Fraction(5,6)).print();
a.print();
b.print();
in.close();
}
}
注意,你的类的定义应该这样开始:
class Fraction {
也就是说,在你的类的class前面不要有public。
输入格式:
程序运行时会得到四个数字,分别构成两个分数,依次是分子和分母。
输出格式:
输出一些算式。这些输入和输出都是由Main类的代码完成的,你的代码不要做输入和输出。
输入样例:
2 4 1 3
输出样例:
1/2
1/3
5/6
1
1/2
1/3
源码展示:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Fraction a = new Fraction(in.nextInt(), in.nextInt());
Fraction b = new Fraction(in.nextInt(),in.nextInt());
a.print();
b.print();
a.plus(b).print();
a.multiply(b).plus(new Fraction(5,6)).print();
a.print();
b.print();
in.close();
}
}
class Fraction {
private int a_;// 分子
private int b_;// 分母
public Fraction(int a, int b) {// 构造函数
while (b % a == 0 && a != 1) {// 化简分数为最简形式
b /= a;
a /= a;
}
a_ = a;
b_ = b;
}
public int getA() {// 得到分子
return a_;
}
public int getB() {// 得到分母
return b_;
}
public Fraction plus(Fraction r) {// 将自己的分数和r的分数相加,产生一个新的Fraction的对象。注意小学四年级学过两个分数如何相加的哈。
int a_1 = a_;// 第一个分子
int b_1 = b_;// 第一个分母
int a_2 = r.getA();// 第二个分子
int b_2 = r.getB();// 第二个分母
int c = b_1 * b_2;
int gongBeiShu = 0;
if (b_1 < b_2) {
int temp = b_1;
b_1 = b_2;
b_2 = temp;
}
while (true) {
int temp = b_1 % b_2;
if (temp == 0) {
gongBeiShu = c / b_2;
break;
} else {
b_1 = b_2;
b_2 = temp;
}
}
if (b_1 != gongBeiShu) {
int beiShu = gongBeiShu / b_;
a_1 = beiShu * a_;
b_1 = beiShu * b_;
}
if (b_2 != gongBeiShu) {
int beiShu = gongBeiShu / (r.getB());
a_2 = beiShu * r.getA();
b_2 = beiShu * r.getB();
}
return new Fraction(a_1 + a_2, b_1);
}
public Fraction multiply(Fraction r) {// 将自己的分数和r的分数相乘,产生一个新的Fraction的对象。
return new Fraction(a_ * (r.getA()), b_ * (r.getB()));
}
public void print() {// 将自己以“分子/分母”的形式输出到标准输出,并带有回车换行。如果分数是1/1,应该输出1。当分子大于分母时,不需要提出整数部分,即31/30是一个正确的输出。
while (b_ % a_ == 0 && a_ != 1) {// 化简分数为最简形式
b_ /= a_;
a_ /= a_;
}
if (a_ == 1 && b_ == 1) {
System.out.println(1);
} else {
System.out.println(a_ + "/" + b_);
}
}
}
分数化简java_中国MOOC分数——Java相关推荐
- python 分数化简_C++、Java、Python中都是怎么精确表达分数的?
你要的东西,STL 库已经有了,叫 std::ratio ,是 C++11 标准的模板类.在 C++11 标准之后,C++委员会加入了大量高等数学相关的函数,beta函数.gamma函数.黎曼Zeta ...
- 两个分数化简比怎么化_我学《分数的意义》心得
停课不停学已经有将近两个月了,我们迈入了"分数"这一部分.听妈妈说,这一块内容很重要,可我觉得到目前为止(明天就学真分数.假分数和带分数了),分数好像并不比四年级难.看了看书,再做 ...
- 分数化简_分数应用题七讲 (一) 图示法解分数应用题
一.今日一讲 图示法就是用线段图(或其它图形)把题目中的已知条件和问题表示出来,这样可以把抽象的数量关系具体化,往往可以从图中找到解题的突破口.运用图示法教学应用题,是培养思维能力的有效方法之一. 图 ...
- 两个分数化简比怎么化_怎么化行最简形矩阵?
同学们,大家好 今天是5月12日,星期二,国际护士节 距离21考研还有221天 有的同学问: 怎么化行最简形矩阵? 有没有什么窍门? 其实没什么窍门儿 就是按着常规的方法 大家先由上往下 把这个矩阵化 ...
- C语言——任意分数化简
#include <stdio.h> #include <stdlib.h> int main() { int a; int b; int c; ...
- 两个分数化简比怎么化_两个分数的比化简怎么化急用
1.先找出中主分线,确定分子部分和分母部分,然后这两部分分别进行计算,每部分的计算结果能约分的要约分,最后改成"分子部分/分母部分"的形式,再求出结果. 2.根据分数的基本性质,经 ...
- 两个分数化简比怎么化_分数如何化成最简分数
Q1:百分之3化成最简分数是多? 百分之3化成最简分数是3/100 Q2:怎样将分数化成最简分数? 例如十分之五化成最简分数是二分之一.(有什么规律吗?) 分子分母同时除以他们的最大公约数 Q3:分数 ...
- MATLAB中 分数化简
1.format rat (分数格式的意思,rat即ratio缩写): 以下皆按分数来计算: 用format命令还原回小数计算: 2.>>sym(15/9); sym是记号符号运算的意 ...
- 2022/2/3 四舍五入 分数化简 高精度运算
电费分段收费 1.四舍五入 b=int((b*10)+0.5)/10.0;//四舍五入到小数点后一位 2.分段的一个方法 for(i=1;i<=150;i++)cost[i]=0.4463;fo ...
- WinForm分数化简计算器(带源码)
那年我还是个纯洁的同学,那年还要写各种作业,那年有门课叫概率论-- 当时发到QQ空间的,整理到CSDN上供大家吐槽,以下是那年为做作业偷的懒-- 先上图 后贴代码(关键部分) private void ...
最新文章
- coreData使用
- python测试代码运行时间_10种检测Python程序运行时间、CPU和内存占用的方法
- 启明云端分享|sigmastar SSD201 \ SSD202D内存大小问题及flash分区问题解答
- python慢在哪里_求大神分析一下我的python脚本慢在哪里?
- 百度地图个性化模板列表
- idea中导入jdbc驱动步骤详解
- 利用自定义事件实现不同窗体间的通讯 -- C#篇
- 计算机建立excel文件,用Excel建立数据库 -电脑资料
- 概率图模型——贝叶斯网络
- 基于物联网的智能门锁应用系统设计方案
- 计算机找不到ie浏览器,WinXP系统IE浏览器不见了怎么办?
- Ubuntu/Windows 双系统安装教程
- Excel 2010 VBA 入门 058 定时运行程序
- 【人事】性格内向的人面试注意事项
- 2021年茶艺师(中级)考试及茶艺师(中级)复审模拟考试
- Centos(Linux)系统备份与还原
- react在线编辑Excel表格
- 还原《魔兽争霸3》场景全过程
- Java中4大基本加密算法解析
- 测试点击屏幕次数的软件_闪电点击app下载-闪电自动点击 安卓版v1.3.2