Advertisement
Cinestra

Untitled

Jan 10th, 2014
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. /*
  2. * Chapter8Number15.java
  3. *
  4. * JM 8 (15)
  5. *
  6. * Consider all proper fractions that have positive denominators on [1, 100].
  7. * Write a program that finds the two such fractions that are closest to
  8. * 17 / 76, one from above and one from below.
  9. * Hint: http://en.wikipedia.org/wiki/1985 & http://en.wikipedia.org/wiki/1567
  10. *
  11. * @author Nick Ku <nicholasku@gmail.com>
  12. */
  13.  
  14.  
  15. public class Chapter8Number15
  16. {
  17. public static double num = 1;
  18. public static double denominator = 1;
  19.  
  20. public static void main(String[] args)
  21. {
  22. // Initialize variables.
  23. int targetNumerator = 17, targetDenominator = 76, maxDivisions = 100;
  24. int // These values insure that the fractions start out at 1.
  25. lessNumerator = 0,
  26. lessDenominator = maxDivisions,
  27. greaterNumerator = maxDivisions,
  28. greaterDenominator = maxDivisions;
  29. double target = (double) targetNumerator / targetDenominator;
  30.  
  31. for (denominator = 1; denominator < 100; denominator ++)
  32. {
  33. for (num = 1; num < denominator; num++)
  34. {
  35. if (1.0 * greaterNumerator / greaterDenominator > 1.0 * num / denominator && num / denominator > target)
  36. {
  37. greaterNumerator = (int)num;
  38. greaterDenominator = (int)denominator;
  39. }
  40. if (1.0 * lessNumerator / lessDenominator < 1.0 * num / denominator && num / denominator < target)
  41. {
  42. lessNumerator = (int)num;
  43. lessDenominator = (int)denominator;
  44. }
  45. }
  46. }
  47.  
  48.  
  49. // Print results.
  50. System.out.printf("Result: %d / %d < %.5f & %d / %d > %.5f\n",
  51. lessNumerator, lessDenominator, target,
  52. greaterNumerator, greaterDenominator, target);
  53. System.out.println("Expected: 19 / 85 < 0.22368 & 15 / 67 > 0.22368");
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement