Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main {
- public static void main(String[] args) {
- RationalFraction r1 = new RationalFraction(1, -2);
- System.out.println("1 = " + r1);
- RationalFraction r2 = new RationalFraction(1, 3);
- System.out.println("2 = " + r2);
- RationalFraction r3 = r1.add(r2);
- System.out.println("3 = 1+2 = " + r3);
- RationalFraction r4 = r3.sub(r1);
- System.out.println("4 = 3-1 = " + r4);
- r4.sub2(r1);
- System.out.println("4 = 4-1 = " + r4);
- r3.add2(r2);
- System.out.println("3 = 3+2 = " + r3);
- RationalFraction r5 = r1.mult(r2);
- System.out.println("5 = 1*2 = " + r5);
- r3.mult2(r1);
- System.out.println("3 = 3*1 = " + r3);
- r3.div2(r1);
- System.out.println("3 = 3/1 = " + r3);
- RationalFraction r6 = r3.div(r1);
- System.out.println("6 = 3/1 = " + r6);
- System.out.println("1 = "+r1.value());
- System.out.println("целая часть 1 = "+r1.numberPart());
- RationalFraction r7 = new RationalFraction(-1,2);
- System.out.println("7 = "+r7);
- System.out.println("7 == 1? "+ r1.equals(r7));
- }
- }
- public class RationalFraction {
- int chisl, znam;
- public RationalFraction() {
- chisl = 0;
- znam = 1;
- }
- public RationalFraction(int c, int z) {
- chisl = c;
- znam = z;
- reduce();
- }
- int gcd(int a, int b) {
- while (a != 0) {
- b %= a;
- int t = b;
- b = a;
- a = t;
- }
- return b;
- }
- void reduce() {
- int g = gcd(chisl, znam);
- chisl /= g;
- znam /= g;
- if (znam < 0) {
- znam *= -1;
- chisl *= -1;
- }
- }
- public RationalFraction add(RationalFraction r) {
- int obshznam = r.znam * znam;
- int newchisl = chisl * r.znam + r.chisl * znam;
- RationalFraction ans = new RationalFraction(newchisl, obshznam);
- ans.reduce();
- return ans;
- }
- public void add2(RationalFraction r) {
- chisl *= r.znam;
- chisl += znam * r.chisl;
- znam *= r.znam;
- reduce();
- }
- public RationalFraction sub(RationalFraction r) {
- int obshznam = r.znam * znam;
- int newchisl = chisl * r.znam - r.chisl * znam;
- RationalFraction ans = new RationalFraction(newchisl, obshznam);
- ans.reduce();
- return ans;
- }
- public void sub2(RationalFraction r) {
- chisl *= r.znam;
- chisl -= znam * r.chisl;
- znam *= r.znam;
- reduce();
- }
- public RationalFraction mult(RationalFraction r) {
- RationalFraction ans = new RationalFraction(chisl * r.chisl, znam * r.znam);
- ans.reduce();
- return ans;
- }
- public void mult2(RationalFraction r) {
- chisl *= r.chisl;
- znam *= r.znam;
- reduce();
- }
- public RationalFraction div(RationalFraction r) {
- return mult(new RationalFraction(r.znam, r.chisl));
- }
- public void div2(RationalFraction r) {
- mult2(new RationalFraction(r.znam, r.chisl));
- }
- public String toString() {
- return chisl + "/" + znam;
- }
- public double value() {
- return 1.0 * chisl / znam;
- }
- public boolean equals(RationalFraction r) {
- return r.chisl == chisl && r.znam == znam;
- }
- public int numberPart() {
- return chisl / znam;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement