zoukankan      html  css  js  c++  java
  • 20165103结对编程练习_四则运算(第二周)

    import java.util.Random;
    public class Fraction {
        private int numerator, denominator;  //定义分母、分子
    
        public  Fraction (int numer, int denom)
        {
    
            if(denom == 0 )        //分子为0
                denom = 1;
            if (denom < 0)           //若分母小于0,则取分母为正值,分子为负值
            {
                numer = numer * -1;
                denom = denom * -1;
            }
            numerator = numer;
            denominator = denom;
    
            reduce();
        }
    
        public int getNumerator()
        {
            return numerator;
        }
    
        public int getDenominator()
        {
            return denominator;
        }
    
    
        public Fraction add(Fraction op2)          //实现真分数加法运算
        {
            int commonDenominator = denominator * op2.getDenominator();   //两随机数a1、a2的分母相乘,进行通分
            int numerator1 = numerator * op2.getDenominator();            //a1的分子=a1的分子与a2的分母相乘
            int numerator2 = op2.getNumerator() * denominator;           //a2的分子=a2的分子与a1的分母相乘
            int sum = numerator1 + numerator2;                            //将通分过后的两个随机数相加
            System.out.print("("+this.toString()+")" + " + " + "("+op2.toString()+")" + "=");
            return new Fraction (sum, commonDenominator);
        }
    
        public Fraction subtract(Fraction op2)           //实现真分数减法运算
        {
            int commonDenominator = denominator * op2.getDenominator();
            int numerator1 = numerator * op2.getDenominator();
            int numerator2 = op2.getNumerator() * denominator;
            int difference = numerator1 - numerator2;
            System.out.print("("+this.toString()+")" + " - " + "("+op2.toString()+")" + "=");
            return new Fraction(difference,commonDenominator);
        }
    
        public Fraction multiply (Fraction op2)              //实现真分数乘法运算
        {
            int numer = numerator * op2.getNumerator();
            int denom = denominator * op2.getDenominator();
            System.out.print("("+this.toString()+")" + " * " + "("+op2.toString()+")" + "=");
            return new Fraction (numer, denom);
        }
    
        public Fraction divide (Fraction op2)              //实现真分数除法运算
        {
    
            int numer = numerator * op2.getDenominator();
            int denom = denominator * op2.getNumerator();
            System.out.print("("+this.toString()+")" + " / " + "("+op2.toString()+")" + "=");
            return new Fraction (numer, denom);
        }
    
        public String toString()      //输出格式及限定
        {
            String result;
    
            if (numerator == 0)               //分子为0,结果为0
                result = "0";
            else
            if(denominator == 0)              //分母不能为0
                return "错误!分母不能为0";
            else
            if (denominator == 1)             //分母为1,结果取分子值
                result = numerator + "";
    
            else
                result = numerator + "/" + denominator;  //按分数形式输出结果
    
            return result;
        }
    
        private void reduce()
        {
            if (numerator != 0)
            {
                int common = gcd (Math.abs(numerator), denominator);    //取分子分母最大公因子
    
                numerator = numerator / common;                        //约分
                denominator = denominator / common;
            }
        }
    
    
        private int gcd (int num1, int num2)                      //计算最大公因子
        {
            if(num2==0)
                return num1;
            else
                return gcd(num2,num1%num2);
    
        }
        public static Fraction obj(){                               //生成随机数
            Random ran = new Random();
            return new Fraction(ran.nextInt(100),ran.nextInt(100));
        }
    }
    
  • 相关阅读:
    docker安装wnameless/oracle-xe-11g并运行(手写超详细)
    QQ浏览器兼容模式问题
    list中放map的几种方式
    oracle存储函数实例
    vue中使用Element主题自定义肤色
    使用eclipse初步学习vue.js基础==》v-for的使用 ②
    使用eclipse初步学习vue.js的基本操作 ①
    发布网站的流程演示
    bookkeeper table service调研
    python爬取今日头条街拍
  • 原文地址:https://www.cnblogs.com/8cloud33zzk/p/8910835.html
Copyright © 2011-2022 走看看