Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1.  
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Scanner;
  5.  
  6. public class Main {
  7.  
  8. public static void main(String[] args) {
  9. System.out.println("Starting program...");
  10. int n = readFromKeyboard();
  11. long start = System.nanoTime();
  12. List<List<Integer>> triples1 = pythagoreanTriple(n);
  13. long end = System.nanoTime();
  14.  
  15. System.out.printf(
  16. "pythagoreanTriple(%d) in %.1f milliseconds.\n",
  17. n,
  18. (end - start) / 1e6);
  19.  
  20. start = System.nanoTime();
  21. List<List<Integer>> triples2 = pythagoreanTriple2(n);
  22. end = System.nanoTime();
  23.  
  24. System.out.printf(
  25. "pythagoreanTriple2(%d) in %.1f milliseconds.\n",
  26. n,
  27. (end - start) / 1e6);
  28. System.out.println("Algorithms agree: " + triples1.equals(triples2));
  29. }
  30.  
  31. private static int readFromKeyboard() {
  32. Scanner keybInput = new Scanner(System.in);
  33. return keybInput.nextInt();
  34. }
  35.  
  36. private static List<List<Integer>> pythagoreanTriple(int n) {
  37. //List<List<Integer>> pytTri = new ArrayList<List<Integer>>();
  38. // Use diamond inference istead:
  39. List<List<Integer>> pytTri = new ArrayList<>();
  40. int i, j, k;
  41. for (i = 3; i < n; i++) {
  42. for (j = n; j > i; j--) {
  43. for (k = n; k > j; k--) {
  44. if (i * i + j * j == k * k) {
  45. ArrayList<Integer> tempArray = new ArrayList<Integer>(); //we create a list of integers
  46. tempArray.add(i);
  47. tempArray.add(j);
  48. tempArray.add(k);
  49. pytTri.add(tempArray);
  50. }
  51. }
  52. }
  53. }
  54. return pytTri;
  55. }
  56.  
  57. private static List<List<Integer>> pythagoreanTriple2(int n) {
  58. List<List<Integer>> pytTri = new ArrayList<>();
  59.  
  60. for (int i = 3; i < n; i++) {
  61. int iSquared = i * i;
  62.  
  63. for (int j = n; j > i; j--) {
  64. int iSquaredPlusJSquared = iSquared + j * j;
  65.  
  66. for (int k = n; k > j; k--) {
  67. if (iSquaredPlusJSquared == k * k) {
  68. List<Integer> result = new ArrayList<>(3);
  69. result.add(i);
  70. result.add(j);
  71. result.add(k);
  72. pytTri.add(result);
  73. }
  74. }
  75. }
  76. }
  77.  
  78. return pytTri;
  79. }
  80.  
  81. private static void printResult(List<List<Integer>> resultList) {
  82. for (List<Integer> ls : resultList) {
  83. for (Integer i : ls) {
  84. System.out.print(i);
  85. System.out.print(" ");
  86. }
  87. System.out.println(";");
  88. }
  89. }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement