有理数就是可以表示为两个整数的比值的数字。一般情况下,我们用近似的小数表示。但有些时候,不允许出现误差,必须用两个整数来表示一个有理数。

这时,我们可以建立一个“有理数类”,下面的代码初步实现了这个目标。为了简明,它只提供了加法和乘法运算。class Rational {

private long ra;

private long rb;

private long gcd(long a, long b) {

if(b == 0) return a;

return gcd(b, a % b);

}

public Rational(long a, long b) {

ra = a;

rb = b;

long k = gcd(ra, rb);

if(k > 1) { //需要约分

ra /= k;

rb /= k;

}

}

// 加法

public Rational add(Rational x) {

return ________________________________________; //填空位置

}

// 乘法

public Rational mul(Rational x) {

return new Rational(ra*x.ra, rb*x.rb);

}

public String toString() {

if(rb == 1) return "" + ra;

return ra + "/" + rb;

}

}

使用该类的示例:Rational a = new Rational(1,3);

Rational b = new Rational(1,6);

Rational c = a.add(b);

System.out.println(a + "+" + b + "=" + c);class Rational {

private long ra;

private long rb;

private long gcd(long a, long b) {

if (b == 0)

return a;

return gcd(b, a % b);

}

public Rational(long a, long b) {

ra = a;

rb = b;

long k = gcd(ra, rb);

if (k > 1) { // 需要约分

ra /= k;

rb /= k;

}

}

// 加法

public Rational add(Rational x) {

return new Rational(ra * x.rb + x.ra * rb, rb * x.rb); // 填空位置

}

// 乘法

public Rational mul(Rational x) {

return new Rational(ra * x.ra, rb * x.rb);

}

public String toString() {

if (rb == 1)

return "" + ra;

return ra + "/" + rb;

}

}

public class Main {

public static void main(String[] args) {

Rational a = new Rational(1, 3);

Rational b = new Rational(1, 6);

Rational c = a.add(b);

System.out.println(a + "+" + b + "=" + c);

}

}

蓝桥杯乘法运算java,第四届蓝桥杯Java B——有理数类相关推荐

  1. 2013第四届蓝桥杯Java组省赛题解析

    2013第四届蓝桥杯Java组省赛题解析 目录 第一题:高斯日记 第二题:马虎的算式 第三题:第39级台阶 第四题:黄金连分数 ​第五题:前缀判断 第六题:三部排序 ​第七题:错误票据 第八题:翻硬币 ...

  2. 金蝉素数c语言,算法笔记_204:第四届蓝桥杯软件类决赛真题(Java语言C组)

    前言:以下代码仅供参考,若有错误欢迎指正哦~ 1好好学习 汤姆跟爷爷来中国旅游.一天,他帮助中国的小朋友贴标语.他负责贴的标语是分别写在四块红纸上的四个大字:"好.好.学.习".但 ...

  3. java实现第四届蓝桥杯剪格子

    剪格子 题目描述 如图p1.jpg所示,3 x 3 的格子中填写了一些整数. 我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是60. 本题的要求就是请你编程判定:对给定的m x n 的格子 ...

  4. 2013年第四届蓝桥杯国赛试题及详解(Java本科B组)

    蓝桥杯历年真题题目及题解目录汇总 结果填空 (满分10分) 结果填空 (满分12分) 代码填空 (满分8分) 程序设计(满分17分) 程序设计(满分22分) 程序设计(满分31分) 1.标题:猜灯谜 ...

  5. 蓝桥杯java第四届决赛第四题--九宫重排

    标题:九宫重排如图1的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成图2所示的局面.我们把图1的局面记为:12345678. ...

  6. java实现第四届蓝桥杯公式求值

    公式求值 输入n, m, k,输出图1所示的公式的值.其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数.组合数的计算公式如图2所示. 输入的第一行包含一个整数n:第二行包含一 ...

  7. java实现第四届蓝桥杯危险系数

    危险系数 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的多个站点间有通道连接,形成了庞大的网络.但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系. 我们来定义一个危险系数DF( ...

  8. 第四届蓝桥杯JAVA组C组国赛题解

    闲话不多说,直接上代码! 1.好好学习 (1)题目描述 汤姆跟爷爷来中国旅游.一天,他帮助中国的小朋友贴标语.他负责贴的标语是分别写在四块红纸上的四个大字:"好.好.学.习".但是 ...

  9. java实现第四届蓝桥杯大臣的旅费

    大臣的旅费 题目描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大 ...

最新文章

  1. 自动驾驶中高效的激光雷达里程计
  2. 重磅:苹果人工智能最完整解密,iBrain早已无处不在
  3. mellanox 网卡驱动_收购Mellanox之后 NVIDIA发布全球首款25G安全智能网卡
  4. Leetcode PHP题解--D47 868. Binary Gap
  5. IDEA——使用JSONObject时报错怎么办?
  6. oracle中如何测试,Oracle数据库中如何正确的查看sql
  7. XPath 简单语法
  8. 循序渐进PostgreSQL: 学习pqxx C++ API访问
  9. jdk帮助文档的获取
  10. Ubuntu 14.04下360/小米/百度等随身Wifi驱动安装方法
  11. 《高等代数学》(姚慕生),复习题一,第1题
  12. 创建mysql表sql语句_mysql创建表的sql语句
  13. 储能补贴有望出台?钱从哪来还是个问题
  14. caj文档如何免费转换成pdf格式
  15. LabVIEW控制Arduino驱动1602液晶显示屏(基础篇—10)
  16. Excel 获取工龄公式
  17. php三元运算符要多个赋值,php中三元运算符用法
  18. 人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载)
  19. char和varchar区别
  20. 机器学习sklearn-随机森林

热门文章

  1. HBase+Spark技术双周刊 第四期
  2. 使用牛刀云开发微信小程序(问题集锦)
  3. 作《互联网时代的软件革命--SaaS架构设计》上市了
  4. Java http方式提交短信到短信网关
  5. 程序员,请不要抢系统管理员的饭碗
  6. 基础才是重中之重~方法override详解
  7. java中使用request,application,session,cookie对象
  8. 启动器和选择器学习-----(5)启动器
  9. nhibernate set null to DateTime column
  10. 【MM模块】Material Planning - 物料计划