`
shenjun134
  • 浏览: 16993 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

分数加减乘除 实现

    博客分类:
  • java
 
阅读更多
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++分数的加减乘除及化简c++

    分数加减乘除运算

    使用JAVA写的.是一个典型的面向对象的设计用来实现分数的加减乘除运算

    c++分数运算 加减乘除源码

    在C++编程语言中,实现分数的加减乘除运算是一项基本任务,尤其在处理数学问题或者需要精确计算的场景中。本项目提供了一个能够处理分数运算的源码,允许用户直接输入包含加、减、乘、除运算符的数学表达式,并能...

    c++分数的重载加减乘除

    本篇文章将详细解析一个具体的示例:如何在C++中通过运算符重载实现分数的加、减、乘、除操作。 ### 运算符重载的基本概念 在C++中,运算符重载是通过定义成员函数或友元函数来实现的。这些函数通常与运算符的名字...

    分数的四则运算:加减乘除

    通过首先输入格式为【a\\b】的分数,再从“+、-、*、\\”当中选择一个计算方式。最后再次输入一个格式为【a\\b】的分数来实现两个分数的+、-、*、\\四则运算。

    分数的加减乘除运算Rational Numbers

    8.17 (Rational Numbers) Create a class called Rational for performing arithmetic with fractions. Write a program to test your class....由于有理数是可比较的,那么Rational类也应该实现Comparable接口。

    分数加减乘除,表面积求解

    "分数加减乘除,表面积求解"这个主题涉及到的是基本的数学运算和几何概念,这些是计算机科学中的基础,特别是在解决计算问题和建模时。下面我们将详细探讨这些知识点。 首先,分数运算是数学中的基本概念,它在编程...

    cpp分数的加减乘除类实现与测试

    实现了两个分数的加减乘除运算及约分,判断正负等功能。 适合C++上机作业的参考。

    js 加减乘除

    ### JavaScript中的精确加减乘除实现 在JavaScript中进行数值计算时,经常会出现不精确的情况,尤其是涉及到小数运算时更为明显。这是因为JavaScript中的数字是以IEEE 754双精度浮点数(64位)格式存储的,这种格式...

    python实现随机出题(加减乘除)

    用python写了一个随机生成加减乘除题,可以给小朋友玩,用来让他写题。不过这里的除法有一点问题,因为python里面包含两种除法(true除法和floor除法),跟数学的除法有差别。遇到这种题的时候就可以解释一下,让他...

    一个简单的加减乘除测试

    在本文中,我们将深入探讨如何使用C#编程语言来实现一个简单的加减乘除测试,这个测试具有自动出题、实时答题以及自动判分的功能,适用于基础的上机小测试。我们将从以下几个方面来详细讲解这个项目: 1. **C#基础...

    用C++编写的分数加减乘除的运算

    #include &lt;iostream&gt; 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版.rar

    《小学加减乘除运算测试 v0.2版》是一个基于JSP技术开发的在线教育应用,主要针对小学生进行基础数学运算能力的测试。在这个版本v0.2中,开发者对原有功能进行了优化和增强,增加了计时和计分功能,以提升软件的互动...

    有理数加减乘除

    在编程领域,尤其是在C++语言中,实现有理数(也称为分数)的加减乘除操作是一项基础但重要的任务。有理数是两个整数的比,通常表示为分子和分母,如3/4或5/2。在本文中,我们将深入探讨如何在C++中创建一个有理数类...

    分数运算及约分

    本主题涉及的是在Object-C中实现分数运算及约分的功能,这在很多科学计算、教育软件或者数学相关的应用中是常见的需求。分数运算包括了基本的加法、减法、乘法和除法,而约分则是将分数化简到最简形式的过程,避免了...

    和复数相关的运算加减乘除的重载

    本主题主要关注如何为复数类实现加、减、乘、除的运算符重载,以及如何处理友元和非友元函数在重载过程中的应用。 首先,我们要理解什么是复数。复数由实部和虚部组成,通常表示为`a + bi`,其中`a`是实部,`b`是...

    包含加减乘除、开根号、n次方的mfc计算器

    在本文中,我们将深入探讨如何使用MFC(Microsoft Foundation Class)库来开发一个功能丰富的计算器,包括加减乘除、开根号以及n次方运算。MFC是微软为Windows平台提供的一套C++类库,它使得开发者可以更加方便地...

    易语言加减乘除益智游戏源码

    【易语言加减乘除益智游戏源码】是一个基于易语言编程的教育资源,旨在帮助用户尤其是初学者理解和实践基本的数学运算,如加法、减法、乘法和除法,这些运算在日常生活和计算中都极为常见。易语言是一种以中文为编程...

    C语言程序:作一个可供小学数学运算的程序,10以内加减乘除法

    作一个可供小学数学运算的程序:10以内加减乘除法,能根据输入的题数,由计算机自动出题,判断做题是否正确,最后计算分数。如: 请输入题数:2 3+5=8 正确! 2*4=6 错误! 您的正确率为:50%

    24点游戏 vc源码

    24点游戏是一款经典的数学益智游戏,玩家需要通过加减乘除运算将四张牌上的数字组合成24。本篇将详细探讨使用VC(Visual C++)编程环境实现24点游戏的源码,以及在VS 2003下的编译过程。 首先,我们要理解游戏的...

Global site tag (gtag.js) - Google Analytics