package com.bean;
public class Fraction {
private Integer molecule;
private Integer denominator;//!=0
public Fraction(Integer molecule, Integer denominator){
this.denominator = denominator;
this.molecule = molecule;
}
public Integer getMolecule() {
return molecule;
}
public void setMolecule(Integer molecule) {
this.molecule = molecule;
}
public Integer getDenominator() {
return denominator;
}
public void setDenominator(Integer denominator) {
this.denominator = denominator;
}
@Override
public String toString() {
return "Fraction [molecule=" + molecule + ", denominator="
+ denominator + "]. " + molecule + "/" + denominator;
}
}
package com.acm;
import com.bean.Fraction;
public class FractionOperation {
public static Fraction add(Fraction value1, Fraction value2) {
Fraction ret = new Fraction(value1.getMolecule()
* value2.getDenominator() + value1.getDenominator()
* value2.getMolecule(), value1.getDenominator()
* value2.getDenominator());
Integer miniDivisor = miniDivisor(ret.getDenominator(),
ret.getMolecule());
ret.setDenominator(ret.getDenominator() / miniDivisor);
ret.setMolecule(ret.getMolecule() / miniDivisor);
return ret;
}
public static Fraction subtrac(Fraction value1, Fraction value2) {
Fraction ret = new Fraction(value1.getMolecule()
* value2.getDenominator() - value1.getDenominator()
* value2.getMolecule(), value1.getDenominator()
* value2.getDenominator());
Integer miniDivisor = miniDivisor(ret.getDenominator(),
ret.getMolecule());
ret.setDenominator(ret.getDenominator() / miniDivisor);
ret.setMolecule(ret.getMolecule() / miniDivisor);
return ret;
}
public static Fraction multil(Fraction value1, Fraction value2) {
Fraction ret = new Fraction(value1.getMolecule()
* value2.getMolecule(), value1.getDenominator()
* value2.getDenominator());
Integer miniDivisor = miniDivisor(ret.getDenominator(),
ret.getMolecule());
ret.setDenominator(ret.getDenominator() / miniDivisor);
ret.setMolecule(ret.getMolecule() / miniDivisor);
return ret;
}
public static Fraction dividen(Fraction value1, Fraction value2) {
Fraction ret = new Fraction(value1.getMolecule()
* value2.getDenominator(), value1.getDenominator()
* value2.getMolecule());
Integer miniDivisor = miniDivisor(ret.getDenominator(),
ret.getMolecule());
ret.setDenominator(ret.getDenominator() / miniDivisor);
ret.setMolecule(ret.getMolecule() / miniDivisor);
return ret;
}
public static Integer miniDivisor(Integer value1, Integer value2) {
Integer temp = new Integer(1);
Integer total = temp;
for (int i = 2, j = value1 / 2 + 1; i < j;) {
temp = new Integer(i);
if (value1 % i != 0) {
i++;
} else {
value1 = value1 / i;
if (value2 % i == 0) {
total = total * i;
value2 = value2 / i;
}
}
}
return total;
}
public static Integer leastCommonMultiple(Integer value1, Integer value2) {
if(miniDivisor(value1, value2) == 1){
return value1 * value2;
}
Integer temp = value1;
if (value1 < value2) {
temp = value2;
}
for (Integer i = temp; i <= value1 * value2; i++) {
if (i % value1 == 0 && i % value2 == 0) {
temp = i;
break;
}
}
return temp;
}
public static void main(String[] args) {
System.out.println(miniDivisor(new Integer(9), new Integer(6)));
System.out.println(miniDivisor(new Integer(9), new Integer(15)));
System.out.println(miniDivisor(new Integer(24), new Integer(6)));
System.out.println(miniDivisor(new Integer(24), new Integer(21)));
System.out
.println(leastCommonMultiple(new Integer(24), new Integer(32)));
System.out
.println(leastCommonMultiple(new Integer(24), new Integer(35)));
Fraction value1 = new Fraction(4, 15);
Fraction value2 = new Fraction(2, 9);
System.out.println(add(value1, value2));
System.out.println(subtrac(value1, value2));
System.out.println(multil(value1, value2));
System.out.println(dividen(value1, value2));
}
}
分享到:
相关推荐
分数的加减乘除及化简c++分数的加减乘除及化简c++分数的加减乘除及化简c++
使用JAVA写的.是一个典型的面向对象的设计用来实现分数的加减乘除运算
在C++编程语言中,实现分数的加减乘除运算是一项基本任务,尤其在处理数学问题或者需要精确计算的场景中。本项目提供了一个能够处理分数运算的源码,允许用户直接输入包含加、减、乘、除运算符的数学表达式,并能...
本篇文章将详细解析一个具体的示例:如何在C++中通过运算符重载实现分数的加、减、乘、除操作。 ### 运算符重载的基本概念 在C++中,运算符重载是通过定义成员函数或友元函数来实现的。这些函数通常与运算符的名字...
通过首先输入格式为【a\\b】的分数,再从“+、-、*、\\”当中选择一个计算方式。最后再次输入一个格式为【a\\b】的分数来实现两个分数的+、-、*、\\四则运算。
8.17 (Rational Numbers) Create a class called Rational for performing arithmetic with fractions. Write a program to test your class....由于有理数是可比较的,那么Rational类也应该实现Comparable接口。
"分数加减乘除,表面积求解"这个主题涉及到的是基本的数学运算和几何概念,这些是计算机科学中的基础,特别是在解决计算问题和建模时。下面我们将详细探讨这些知识点。 首先,分数运算是数学中的基本概念,它在编程...
本文将详细介绍分数加减乘除的基本规则,以及如何通过练习加深理解。 首先,让我们从分数的加法开始。当两个同分母的分数相加时,过程相对简单,只需要将分子相加,分母保持不变。例如,1/2 + 2/2 等于 3/2。但对于...
实现了两个分数的加减乘除运算及约分,判断正负等功能。 适合C++上机作业的参考。
### JavaScript中的精确加减乘除实现 在JavaScript中进行数值计算时,经常会出现不精确的情况,尤其是涉及到小数运算时更为明显。这是因为JavaScript中的数字是以IEEE 754双精度浮点数(64位)格式存储的,这种格式...
用python写了一个随机生成加减乘除题,可以给小朋友玩,用来让他写题。不过这里的除法有一点问题,因为python里面包含两种除法(true除法和floor除法),跟数学的除法有差别。遇到这种题的时候就可以解释一下,让他...
在本文中,我们将深入探讨如何使用C#编程语言来实现一个简单的加减乘除测试,这个测试具有自动出题、实时答题以及自动判分的功能,适用于基础的上机小测试。我们将从以下几个方面来详细讲解这个项目: 1. **C#基础...
#include <iostream> using namespace std; class fen { public: //fen(){a=0;b=0;} fen(int x=1,int y=1){a=x;b=y;} ~fen(){} void show(){cout;} fen operator+(fen &f1); fen operator=(fen &f1);...}
《小学加减乘除运算测试 v0.2版》是一个基于JSP技术开发的在线教育应用,主要针对小学生进行基础数学运算能力的测试。在这个版本v0.2中,开发者对原有功能进行了优化和增强,增加了计时和计分功能,以提升软件的互动...
在编程领域,尤其是在C++语言中,实现有理数(也称为分数)的加减乘除操作是一项基础但重要的任务。有理数是两个整数的比,通常表示为分子和分母,如3/4或5/2。在本文中,我们将深入探讨如何在C++中创建一个有理数类...
本主题涉及的是在Object-C中实现分数运算及约分的功能,这在很多科学计算、教育软件或者数学相关的应用中是常见的需求。分数运算包括了基本的加法、减法、乘法和除法,而约分则是将分数化简到最简形式的过程,避免了...
本主题主要关注如何为复数类实现加、减、乘、除的运算符重载,以及如何处理友元和非友元函数在重载过程中的应用。 首先,我们要理解什么是复数。复数由实部和虚部组成,通常表示为`a + bi`,其中`a`是实部,`b`是...
在本文中,我们将深入探讨如何使用MFC(Microsoft Foundation Class)库来开发一个功能丰富的计算器,包括加减乘除、开根号以及n次方运算。MFC是微软为Windows平台提供的一套C++类库,它使得开发者可以更加方便地...
【易语言加减乘除益智游戏源码】是一个基于易语言编程的教育资源,旨在帮助用户尤其是初学者理解和实践基本的数学运算,如加法、减法、乘法和除法,这些运算在日常生活和计算中都极为常见。易语言是一种以中文为编程...
作一个可供小学数学运算的程序:10以内加减乘除法,能根据输入的题数,由计算机自动出题,判断做题是否正确,最后计算分数。如: 请输入题数:2 3+5=8 正确! 2*4=6 错误! 您的正确率为:50%