fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Ideone {
  6. public static void main(String[] args) {
  7. new Ideone();
  8. }
  9. public Ideone() {
  10. Fraction f1 = new Fraction(1, 3);
  11. f1.print();
  12. Fraction f2 = new Fraction(1, 2);
  13. f2.print();
  14.  
  15. Fraction f3 = f1.add(f2);
  16. f3.print();
  17. }
  18.  
  19. private class Fraction {
  20. public double numerator = 0;
  21. public double denominator = 0;
  22.  
  23. public Fraction() { }
  24. public Fraction(Fraction f) {
  25. this.numerator = f.numerator;
  26. this.denominator = f.denominator;
  27. }
  28. public Fraction(double numerator, double denominator) {
  29. this.numerator = numerator;
  30. this.denominator = denominator;
  31. }
  32.  
  33. public Fraction add(Fraction f1) {
  34. Fraction f2 = new Fraction();
  35.  
  36. f2.denominator = this.denominator * f1.denominator;
  37. f2.numerator = this.numerator * f1.denominator + f1.numerator * this.denominator;
  38. return f2;
  39. }
  40. public Fraction add(double d) {
  41. Fraction f = new Fraction(this);
  42. f.numerator += d * f.denominator;
  43. return f;
  44. }
  45. public void print() {
  46. String numerator = String.valueOf(this.numerator);
  47. String denominator = String.valueOf(this.denominator);
  48. int length = Math.max(numerator.length(), denominator.length());
  49. int point = Math.min(numerator.length()-numerator.indexOf('.'), denominator.length()-denominator.indexOf('.'));
  50.  
  51. System.out.println(String.format(" %.0f", this.numerator));
  52. for (int i=0; i<length; i++) System.out.print('-');
  53. System.out.println();
  54. System.out.println(String.format(" %.0f", this.denominator));
  55. }
  56. }
  57. }
Success #stdin #stdout 0.08s 380160KB
stdin
Standard input is empty
stdout
 1
---
 3
 1
---
 2
 5
---
 6