Просмотр исходного кода

difference-of-squares: add to track

Stuart Kent 10 лет назад
Родитель
Сommit
25f3d8d8cc

+ 7
- 1
config.json Просмотреть файл

@@ -42,7 +42,8 @@
42 42
     "linked-list",
43 43
     "nth-prime",
44 44
     "pascals-triangle",
45
-    "beer-song"
45
+    "beer-song",
46
+    "difference-of-squares"
46 47
   ],
47 48
   "exercises": [
48 49
     {
@@ -239,6 +240,11 @@
239 240
       "slug": "beer-song",
240 241
       "difficulty": 1,
241 242
       "topics": []
243
+    },
244
+    {
245
+      "slug": "difference-of-squares",
246
+      "difficulty": 1,
247
+      "topics": []
242 248
     }
243 249
   ],
244 250
   "deprecated": [

+ 17
- 0
exercises/difference-of-squares/build.gradle Просмотреть файл

@@ -0,0 +1,17 @@
1
+apply plugin: "java"
2
+apply plugin: "eclipse"
3
+apply plugin: "idea"
4
+
5
+repositories {
6
+  mavenCentral()
7
+}
8
+
9
+dependencies {
10
+  testCompile "junit:junit:4.12"
11
+}
12
+test {
13
+  testLogging {
14
+    exceptionFormat = 'full'
15
+    events = ["passed", "failed", "skipped"]
16
+  }
17
+}

+ 0
- 0
exercises/difference-of-squares/src/example/java/.keep Просмотреть файл


+ 20
- 0
exercises/difference-of-squares/src/example/java/Difference.java Просмотреть файл

@@ -0,0 +1,20 @@
1
+import java.util.stream.IntStream;
2
+
3
+public final class Difference {
4
+
5
+    public static int computeSquareOfSumTo(final int input) {
6
+        final int sum = input * (input + 1) / 2;
7
+        return (int) Math.pow(sum, 2);
8
+    }
9
+
10
+    public static int computeSumOfSquaresTo(final int input) {
11
+        return IntStream.rangeClosed(1, input)
12
+                .map(i -> (int) Math.pow(i, 2))
13
+                .sum();
14
+    }
15
+
16
+    public static int betweenSquareOfSumAndSumOfSquaresTo(final int input) {
17
+        return computeSquareOfSumTo(input) - computeSumOfSquaresTo(input);
18
+    }
19
+
20
+}

+ 0
- 0
exercises/difference-of-squares/src/main/java/.keep Просмотреть файл


+ 5
- 0
exercises/difference-of-squares/src/main/java/Difference.java Просмотреть файл

@@ -0,0 +1,5 @@
1
+public final class Difference {
2
+    
3
+
4
+
5
+}

+ 87
- 0
exercises/difference-of-squares/src/test/java/DifferenceTest.java Просмотреть файл

@@ -0,0 +1,87 @@
1
+import org.junit.Ignore;
2
+import org.junit.Test;
3
+
4
+import static org.junit.Assert.assertEquals;
5
+
6
+public final class DifferenceTest {
7
+
8
+    @Test
9
+    public void testSquareOfSum5() {
10
+        final int expected = 225;
11
+        final int actual = Difference.computeSquareOfSumTo(5);
12
+        assertEquals(expected, actual);
13
+    }
14
+
15
+    @Ignore
16
+    @Test
17
+    public void testSquareOfSum10() {
18
+        final int expected = 3025;
19
+        final int actual = Difference.computeSquareOfSumTo(10);
20
+        assertEquals(expected, actual);
21
+    }
22
+
23
+    @Ignore
24
+    @Test
25
+    public void testSquareOfSum100() {
26
+        final int expected = 25502500;
27
+        final int actual = Difference.computeSquareOfSumTo(100);
28
+        assertEquals(expected, actual);
29
+    }
30
+
31
+    @Ignore
32
+    @Test
33
+    public void testSumOfSquares5() {
34
+        final int expected = 55;
35
+        final int actual = Difference.computeSumOfSquaresTo(5);
36
+        assertEquals(expected, actual);
37
+    }
38
+
39
+    @Ignore
40
+    @Test
41
+    public void testSumOfSquares10() {
42
+        final int expected = 385;
43
+        final int actual = Difference.computeSumOfSquaresTo(10);
44
+        assertEquals(expected, actual);
45
+    }
46
+
47
+    @Ignore
48
+    @Test
49
+    public void testSumOfSquares100() {
50
+        final int expected = 338350;
51
+        final int actual = Difference.computeSumOfSquaresTo(100);
52
+        assertEquals(expected, actual);
53
+    }
54
+
55
+    @Ignore
56
+    @Test
57
+    public void testDifferenceOfSquares0() {
58
+        final int expected = 0;
59
+        final int actual = Difference.betweenSquareOfSumAndSumOfSquaresTo(0);
60
+        assertEquals(expected, actual);
61
+    }
62
+
63
+    @Ignore
64
+    @Test
65
+    public void testDifferenceOfSquares5() {
66
+        final int expected = 170;
67
+        final int actual = Difference.betweenSquareOfSumAndSumOfSquaresTo(5);
68
+        assertEquals(expected, actual);
69
+    }
70
+
71
+    @Ignore
72
+    @Test
73
+    public void testDifferenceOfSquares10() {
74
+        final int expected = 2640;
75
+        final int actual = Difference.betweenSquareOfSumAndSumOfSquaresTo(10);
76
+        assertEquals(expected, actual);
77
+    }
78
+
79
+    @Ignore
80
+    @Test
81
+    public void testDifferenceOfSquares100() {
82
+        final int expected = 25164150;
83
+        final int actual = Difference.betweenSquareOfSumAndSumOfSquaresTo(100);
84
+        assertEquals(expected, actual);
85
+    }
86
+
87
+}

+ 1
- 0
exercises/settings.gradle Просмотреть файл

@@ -7,6 +7,7 @@ include 'beer-song'
7 7
 include 'binary'
8 8
 include 'bob'
9 9
 include 'crypto-square'
10
+include 'difference-of-squares'
10 11
 include 'etl'
11 12
 include 'gigasecond'
12 13
 include 'grade-school'