用Java实现分数加减和乘法计算
2015-08-09 18:37
246 查看
用Java实现分数加法和乘法计算(新手)
直接上代码,分别手动输入两个分数的分子和分母
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 {
int a;
int b;
Fraction(int a, int b) {
this.a = a;
this.b = b;
}
double toDouble() {
return a / b;
}
void print() {
// double result = 0;
int resulta = a;
int resultb = b;
if (a == b) {
System.out.println(resulta / resultb);
} else if (a > b) {
for (int i = 1; i <= b; i++) {
if ((a / i * i == a) && (b / i * i == b)) {
resulta = a / i;
resultb = b / i;
}
}
if (resultb == 1) {
System.out.println(resulta);
} else {
System.out.println(resulta + "/" + resultb);
}
} else {
for (int i = 1; i <= a; i++) {
if ((a / i * i == a) && (b / i * i == b)) {
resulta = a / i;
resultb = b / i;
}
}
System.out.println(resulta + "/" + resultb);
}
}
Fraction plus(Fraction r) {
Fraction s = new Fraction(a, b);
int temp = this.b * r.b;
s.a = this.a * r.b + this.b * r.a;
s.b = temp;
return s;
}
Fraction multiply(Fraction r) {
Fraction s = new Fraction(a, b);
s.a = this.a * r.a;
s.b = this.b * r.b;
return s;
}
}
直接上代码,分别手动输入两个分数的分子和分母
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 {
int a;
int b;
Fraction(int a, int b) {
this.a = a;
this.b = b;
}
double toDouble() {
return a / b;
}
void print() {
// double result = 0;
int resulta = a;
int resultb = b;
if (a == b) {
System.out.println(resulta / resultb);
} else if (a > b) {
for (int i = 1; i <= b; i++) {
if ((a / i * i == a) && (b / i * i == b)) {
resulta = a / i;
resultb = b / i;
}
}
if (resultb == 1) {
System.out.println(resulta);
} else {
System.out.println(resulta + "/" + resultb);
}
} else {
for (int i = 1; i <= a; i++) {
if ((a / i * i == a) && (b / i * i == b)) {
resulta = a / i;
resultb = b / i;
}
}
System.out.println(resulta + "/" + resultb);
}
}
Fraction plus(Fraction r) {
Fraction s = new Fraction(a, b);
int temp = this.b * r.b;
s.a = this.a * r.b + this.b * r.a;
s.b = temp;
return s;
}
Fraction multiply(Fraction r) {
Fraction s = new Fraction(a, b);
s.a = this.a * r.a;
s.b = this.b * r.b;
return s;
}
}
相关文章推荐
- 【Java多线程】之十二:Java Thread Pool Example using Executors and ThreadPoolExecutor
- Java中逻辑表达式的短路(先理解运算符的优先级)
- java对世界各个时区(TimeZone)的通用转换处理方法
- Java中得到GMT 时间(格林时间)
- spring 事务 aop:pointcut配置
- SSL介绍与Java实例
- Spring3.0学习札记一Spring IOC控制反转(4)
- java基础
- Java字符串切割
- Java反射机制之集合泛型的本质
- 设计模式之spring分析
- Java容器框架总结(一)
- gradle生成java Project并导入Eclipse中
- [Java Concurrency in Practice]第二章 线程安全性
- Java CAS 和ABA问题
- Java记录 -5- 运算符续 Operator
- Eclipse背景设置
- Java学习笔记-------父进程监听,子进程接受连接的完整实例
- java 批量操作数据库
- java学习练习题及答案