trackler 2.2.1.98 → 2.2.1.99
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/complex-numbers/canonical-data.json +47 -47
- data/problem-specifications/exercises/custom-set/canonical-data.json +13 -7
- data/tracks/delphi/exercises/phone-number/uPhoneNumberTests.pas +1 -1
- data/tracks/elixir/exercises/protein-translation/protein_translation_test.exs +5 -0
- data/tracks/fsharp/config.json +10 -0
- data/tracks/fsharp/exercises/Exercises.sln +6 -0
- data/tracks/fsharp/exercises/accumulate/AccumulateTest.fs +2 -0
- data/tracks/fsharp/exercises/bank-account/BankAccountTest.fs +2 -0
- data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTreeTest.fs +2 -0
- data/tracks/fsharp/exercises/binary/BinaryTest.fs +2 -0
- data/tracks/fsharp/exercises/circular-buffer/CircularBufferTest.fs +121 -117
- data/tracks/fsharp/exercises/complex-numbers/ComplexNumbers.fs +21 -0
- data/tracks/fsharp/exercises/complex-numbers/ComplexNumbers.fsproj +23 -0
- data/tracks/fsharp/exercises/complex-numbers/ComplexNumbersTest.fs +168 -0
- data/tracks/fsharp/exercises/complex-numbers/Example.fs +27 -0
- data/tracks/fsharp/exercises/complex-numbers/Program.fs +1 -0
- data/tracks/fsharp/exercises/complex-numbers/README.md +35 -0
- data/tracks/fsharp/exercises/diamond/DiamondTest.fs +2 -0
- data/tracks/fsharp/exercises/diffie-hellman/DiffieHellmanTest.fs +2 -0
- data/tracks/fsharp/exercises/dot-dsl/DotDslTest.fs +2 -0
- data/tracks/fsharp/exercises/error-handling/ErrorHandlingTest.fs +2 -0
- data/tracks/fsharp/exercises/go-counting/GoCountingTest.fs +2 -0
- data/tracks/fsharp/exercises/grade-school/GradeSchoolTest.fs +2 -0
- data/tracks/fsharp/exercises/hangman/HangmanTest.fs +2 -0
- data/tracks/fsharp/exercises/hexadecimal/HexadecimalTest.fs +2 -0
- data/tracks/fsharp/exercises/ledger/LedgerTest.fs +2 -0
- data/tracks/fsharp/exercises/lens-person/LensPersonTest.fs +2 -0
- data/tracks/fsharp/exercises/linked-list/LinkedListTest.fs +2 -0
- data/tracks/fsharp/exercises/matrix/MatrixTest.fs +2 -0
- data/tracks/fsharp/exercises/octal/OctalTest.fs +2 -0
- data/tracks/fsharp/exercises/parallel-letter-frequency/ParallelLetterFrequencyTest.fs +2 -0
- data/tracks/fsharp/exercises/pov/PovTest.fs +2 -0
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslationTest.fs +2 -0
- data/tracks/fsharp/exercises/pythagorean-triplet/PythagoreanTripletTest.fs +2 -0
- data/tracks/fsharp/exercises/robot-name/RobotNameTest.fs +2 -0
- data/tracks/fsharp/exercises/saddle-points/SaddlePointsTest.fs +2 -0
- data/tracks/fsharp/exercises/say/SayTest.fs +2 -0
- data/tracks/fsharp/exercises/scale-generator/ScaleGeneratorTest.fs +2 -0
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshakeTest.fs +2 -0
- data/tracks/fsharp/exercises/series/SeriesTest.fs +2 -0
- data/tracks/fsharp/exercises/sgf-parsing/SgfParsingTest.fs +2 -0
- data/tracks/fsharp/exercises/sieve/SieveTest.fs +2 -0
- data/tracks/fsharp/exercises/simple-cipher/SimpleCipherTest.fs +2 -0
- data/tracks/fsharp/exercises/simple-linked-list/SimpleLinkedListTest.fs +2 -0
- data/tracks/fsharp/exercises/space-age/SpaceAgeTest.fs +2 -0
- data/tracks/fsharp/exercises/strain/StrainTest.fs +2 -0
- data/tracks/fsharp/exercises/sublist/SublistTest.fs +2 -0
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiplesTest.fs +2 -0
- data/tracks/fsharp/exercises/tournament/TournamentTest.fs +2 -0
- data/tracks/fsharp/exercises/transpose/TransposeTest.fs +2 -0
- data/tracks/fsharp/exercises/transpose/TrinaryTest.fs +3 -1
- data/tracks/fsharp/exercises/tree-building/TreeBuildingTest.fs +2 -0
- data/tracks/fsharp/exercises/triangle/TriangleTest.fs +2 -0
- data/tracks/fsharp/exercises/trinary/TrinaryTest.fs +2 -0
- data/tracks/fsharp/exercises/two-bucket/TwoBucketTest.fs +2 -0
- data/tracks/fsharp/exercises/variable-length-quantity/VariableLengthQuantityTest.fs +2 -0
- data/tracks/fsharp/exercises/word-count/WordCountTest.fs +2 -0
- data/tracks/fsharp/exercises/word-search/WordSearchTest.fs +2 -0
- data/tracks/fsharp/exercises/wordy/WordyTest.fs +2 -0
- data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzleTest.fs +2 -0
- data/tracks/fsharp/exercises/zipper/ZipperTest.fs +2 -0
- data/tracks/fsharp/generators/CanonicalData.fs +1 -1
- data/tracks/fsharp/generators/Generators.fs +89 -0
- data/tracks/go/config.json +16 -0
- data/tracks/go/exercises/rail-fence-cipher/.meta/gen.go +82 -0
- data/tracks/go/exercises/rail-fence-cipher/README.md +83 -0
- data/tracks/go/exercises/rail-fence-cipher/cases_test.go +50 -0
- data/tracks/go/exercises/rail-fence-cipher/example.go +58 -0
- data/tracks/go/exercises/rail-fence-cipher/rail_fence_cipher_test.go +15 -0
- data/tracks/go/exercises/say/.meta/gen.go +5 -3
- data/tracks/go/exercises/say/cases_test.go +2 -2
- data/tracks/go/exercises/scrabble-score/.meta/gen.go +5 -3
- data/tracks/go/exercises/scrabble-score/cases_test.go +2 -2
- data/tracks/go/exercises/secret-handshake/.meta/gen.go +5 -3
- data/tracks/go/exercises/secret-handshake/cases_test.go +2 -2
- data/tracks/go/exercises/transpose/.meta/gen.go +5 -3
- data/tracks/go/exercises/transpose/cases_test.go +30 -76
- data/tracks/go/exercises/word-count/.meta/gen.go +5 -3
- data/tracks/go/exercises/word-count/cases_test.go +2 -2
- data/tracks/go/exercises/wordy/.meta/gen.go +5 -3
- data/tracks/go/exercises/wordy/cases_test.go +2 -2
- data/tracks/java/exercises/largest-series-product/.meta/src/reference/java/LargestSeriesProductCalculator.java +1 -3
- data/tracks/java/exercises/largest-series-product/.meta/version +1 -0
- data/tracks/java/exercises/largest-series-product/src/test/java/LargestSeriesProductCalculatorTest.java +9 -44
- data/tracks/ocaml/exercises/grade-school/.meta/description.md +21 -0
- data/tracks/ocaml/exercises/palindrome-products/.meta/description.md +35 -0
- data/tracks/ocaml/exercises/palindrome-products/README.md +13 -9
- metadata +16 -2
@@ -0,0 +1,21 @@
|
|
1
|
+
module ComplexNumbers
|
2
|
+
|
3
|
+
let create real imaginary = failwith "You need to implement this function."
|
4
|
+
|
5
|
+
let mul z1 z2 = failwith "You need to implement this function."
|
6
|
+
|
7
|
+
let add z1 z2 = failwith "You need to implement this function."
|
8
|
+
|
9
|
+
let sub z1 z2 = failwith "You need to implement this function."
|
10
|
+
|
11
|
+
let div z1 z2 = failwith "You need to implement this function."
|
12
|
+
|
13
|
+
let abs z = failwith "You need to implement this function."
|
14
|
+
|
15
|
+
let conjugate z = failwith "You need to implement this function."
|
16
|
+
|
17
|
+
let real z = failwith "You need to implement this function."
|
18
|
+
|
19
|
+
let imaginary z = failwith "You need to implement this function."
|
20
|
+
|
21
|
+
let exp z = failwith "You need to implement this function."
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
2
|
+
|
3
|
+
<PropertyGroup>
|
4
|
+
<TargetFramework>netcoreapp2.0</TargetFramework>
|
5
|
+
|
6
|
+
<IsPackable>false</IsPackable>
|
7
|
+
</PropertyGroup>
|
8
|
+
|
9
|
+
<ItemGroup>
|
10
|
+
<Compile Include="ComplexNumbers.fs" />
|
11
|
+
<Compile Include="ComplexNumbersTest.fs" />
|
12
|
+
<Compile Include="Program.fs" />
|
13
|
+
</ItemGroup>
|
14
|
+
|
15
|
+
<ItemGroup>
|
16
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
|
17
|
+
<PackageReference Include="xunit" Version="2.3.1" />
|
18
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
19
|
+
<PackageReference Include="FsUnit.xUnit" Version="3.0.0" />
|
20
|
+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
21
|
+
</ItemGroup>
|
22
|
+
|
23
|
+
</Project>
|
@@ -0,0 +1,168 @@
|
|
1
|
+
// This file was auto-generated based on version 1.0.0 of the canonical data.
|
2
|
+
|
3
|
+
module ComplexNumbersTest
|
4
|
+
|
5
|
+
open FsUnit.Xunit
|
6
|
+
open Xunit
|
7
|
+
open System
|
8
|
+
|
9
|
+
open ComplexNumbers
|
10
|
+
|
11
|
+
[<Fact>]
|
12
|
+
let ``Imaginary unit`` () =
|
13
|
+
let sut = mul (create 0.0 1.0) (create 0.0 1.0)
|
14
|
+
real sut |> should (equalWithin 0.000000001) -1.0
|
15
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
16
|
+
|
17
|
+
[<Fact(Skip = "Remove to run test")>]
|
18
|
+
let ``Add purely real numbers`` () =
|
19
|
+
let sut = add (create 1.0 0.0) (create 2.0 0.0)
|
20
|
+
real sut |> should (equalWithin 0.000000001) 3.0
|
21
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
22
|
+
|
23
|
+
[<Fact(Skip = "Remove to run test")>]
|
24
|
+
let ``Add purely imaginary numbers`` () =
|
25
|
+
let sut = add (create 0.0 1.0) (create 0.0 2.0)
|
26
|
+
real sut |> should (equalWithin 0.000000001) 0.0
|
27
|
+
imaginary sut |> should (equalWithin 0.000000001) 3.0
|
28
|
+
|
29
|
+
[<Fact(Skip = "Remove to run test")>]
|
30
|
+
let ``Add numbers with real and imaginary part`` () =
|
31
|
+
let sut = add (create 1.0 2.0) (create 3.0 4.0)
|
32
|
+
real sut |> should (equalWithin 0.000000001) 4.0
|
33
|
+
imaginary sut |> should (equalWithin 0.000000001) 6.0
|
34
|
+
|
35
|
+
[<Fact(Skip = "Remove to run test")>]
|
36
|
+
let ``Subtract purely real numbers`` () =
|
37
|
+
let sut = sub (create 1.0 0.0) (create 2.0 0.0)
|
38
|
+
real sut |> should (equalWithin 0.000000001) -1.0
|
39
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
40
|
+
|
41
|
+
[<Fact(Skip = "Remove to run test")>]
|
42
|
+
let ``Subtract purely imaginary numbers`` () =
|
43
|
+
let sut = sub (create 0.0 1.0) (create 0.0 2.0)
|
44
|
+
real sut |> should (equalWithin 0.000000001) 0.0
|
45
|
+
imaginary sut |> should (equalWithin 0.000000001) -1.0
|
46
|
+
|
47
|
+
[<Fact(Skip = "Remove to run test")>]
|
48
|
+
let ``Subtract numbers with real and imaginary part`` () =
|
49
|
+
let sut = sub (create 1.0 2.0) (create 3.0 4.0)
|
50
|
+
real sut |> should (equalWithin 0.000000001) -2.0
|
51
|
+
imaginary sut |> should (equalWithin 0.000000001) -2.0
|
52
|
+
|
53
|
+
[<Fact(Skip = "Remove to run test")>]
|
54
|
+
let ``Multiply purely real numbers`` () =
|
55
|
+
let sut = mul (create 1.0 0.0) (create 2.0 0.0)
|
56
|
+
real sut |> should (equalWithin 0.000000001) 2.0
|
57
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
58
|
+
|
59
|
+
[<Fact(Skip = "Remove to run test")>]
|
60
|
+
let ``Multiply purely imaginary numbers`` () =
|
61
|
+
let sut = mul (create 0.0 1.0) (create 0.0 2.0)
|
62
|
+
real sut |> should (equalWithin 0.000000001) -2.0
|
63
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
64
|
+
|
65
|
+
[<Fact(Skip = "Remove to run test")>]
|
66
|
+
let ``Multiply numbers with real and imaginary part`` () =
|
67
|
+
let sut = mul (create 1.0 2.0) (create 3.0 4.0)
|
68
|
+
real sut |> should (equalWithin 0.000000001) -5.0
|
69
|
+
imaginary sut |> should (equalWithin 0.000000001) 10.0
|
70
|
+
|
71
|
+
[<Fact(Skip = "Remove to run test")>]
|
72
|
+
let ``Divide purely real numbers`` () =
|
73
|
+
let sut = div (create 1.0 0.0) (create 2.0 0.0)
|
74
|
+
real sut |> should (equalWithin 0.000000001) 0.5
|
75
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
76
|
+
|
77
|
+
[<Fact(Skip = "Remove to run test")>]
|
78
|
+
let ``Divide purely imaginary numbers`` () =
|
79
|
+
let sut = div (create 0.0 1.0) (create 0.0 2.0)
|
80
|
+
real sut |> should (equalWithin 0.000000001) 0.5
|
81
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
82
|
+
|
83
|
+
[<Fact(Skip = "Remove to run test")>]
|
84
|
+
let ``Divide numbers with real and imaginary part`` () =
|
85
|
+
let sut = div (create 1.0 2.0) (create 3.0 4.0)
|
86
|
+
real sut |> should (equalWithin 0.000000001) 0.44
|
87
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.08
|
88
|
+
|
89
|
+
[<Fact(Skip = "Remove to run test")>]
|
90
|
+
let ``Absolute value of a positive purely real number`` () =
|
91
|
+
abs (create 5.0 0.0) |> should equal 5.0
|
92
|
+
|
93
|
+
[<Fact(Skip = "Remove to run test")>]
|
94
|
+
let ``Absolute value of a negative purely real number`` () =
|
95
|
+
abs (create -5.0 0.0) |> should equal 5.0
|
96
|
+
|
97
|
+
[<Fact(Skip = "Remove to run test")>]
|
98
|
+
let ``Absolute value of a purely imaginary number with positive imaginary part`` () =
|
99
|
+
abs (create 0.0 5.0) |> should equal 5.0
|
100
|
+
|
101
|
+
[<Fact(Skip = "Remove to run test")>]
|
102
|
+
let ``Absolute value of a purely imaginary number with negative imaginary part`` () =
|
103
|
+
abs (create 0.0 -5.0) |> should equal 5.0
|
104
|
+
|
105
|
+
[<Fact(Skip = "Remove to run test")>]
|
106
|
+
let ``Absolute value of a number with real and imaginary part`` () =
|
107
|
+
abs (create 3.0 4.0) |> should equal 5.0
|
108
|
+
|
109
|
+
[<Fact(Skip = "Remove to run test")>]
|
110
|
+
let ``Conjugate a purely real number`` () =
|
111
|
+
let sut = conjugate (create 5.0 0.0)
|
112
|
+
real sut |> should (equalWithin 0.000000001) 5.0
|
113
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
114
|
+
|
115
|
+
[<Fact(Skip = "Remove to run test")>]
|
116
|
+
let ``Conjugate a purely imaginary number`` () =
|
117
|
+
let sut = conjugate (create 0.0 5.0)
|
118
|
+
real sut |> should (equalWithin 0.000000001) 0.0
|
119
|
+
imaginary sut |> should (equalWithin 0.000000001) -5.0
|
120
|
+
|
121
|
+
[<Fact(Skip = "Remove to run test")>]
|
122
|
+
let ``Conjugate a number with real and imaginary part`` () =
|
123
|
+
let sut = conjugate (create 1.0 1.0)
|
124
|
+
real sut |> should (equalWithin 0.000000001) 1.0
|
125
|
+
imaginary sut |> should (equalWithin 0.000000001) -1.0
|
126
|
+
|
127
|
+
[<Fact(Skip = "Remove to run test")>]
|
128
|
+
let ``Real part of a purely real number`` () =
|
129
|
+
real (create 1.0 0.0) |> should equal 1.0
|
130
|
+
|
131
|
+
[<Fact(Skip = "Remove to run test")>]
|
132
|
+
let ``Real part of a purely imaginary number`` () =
|
133
|
+
real (create 0.0 1.0) |> should equal 0.0
|
134
|
+
|
135
|
+
[<Fact(Skip = "Remove to run test")>]
|
136
|
+
let ``Real part of a number with real and imaginary part`` () =
|
137
|
+
real (create 1.0 2.0) |> should equal 1.0
|
138
|
+
|
139
|
+
[<Fact(Skip = "Remove to run test")>]
|
140
|
+
let ``Imaginary part of a purely real number`` () =
|
141
|
+
imaginary (create 1.0 0.0) |> should equal 0.0
|
142
|
+
|
143
|
+
[<Fact(Skip = "Remove to run test")>]
|
144
|
+
let ``Imaginary part of a purely imaginary number`` () =
|
145
|
+
imaginary (create 0.0 1.0) |> should equal 1.0
|
146
|
+
|
147
|
+
[<Fact(Skip = "Remove to run test")>]
|
148
|
+
let ``Imaginary part of a number with real and imaginary part`` () =
|
149
|
+
imaginary (create 1.0 2.0) |> should equal 2.0
|
150
|
+
|
151
|
+
[<Fact(Skip = "Remove to run test")>]
|
152
|
+
let ``Euler's identity/formula`` () =
|
153
|
+
let sut = exp (create 0.0 Math.PI)
|
154
|
+
real sut |> should (equalWithin 0.000000001) -1.0
|
155
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
156
|
+
|
157
|
+
[<Fact(Skip = "Remove to run test")>]
|
158
|
+
let ``Exponential of 0`` () =
|
159
|
+
let sut = exp (create 0.0 0.0)
|
160
|
+
real sut |> should (equalWithin 0.000000001) 1.0
|
161
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
162
|
+
|
163
|
+
[<Fact(Skip = "Remove to run test")>]
|
164
|
+
let ``Exponential of a purely real number`` () =
|
165
|
+
let sut = exp (create 1.0 0.0)
|
166
|
+
real sut |> should (equalWithin 0.000000001) Math.E
|
167
|
+
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
168
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module ComplexNumbers
|
2
|
+
|
3
|
+
open System
|
4
|
+
|
5
|
+
type ComplexNumber = { real: float; imaginary: float }
|
6
|
+
|
7
|
+
let create real imaginary = { real = real; imaginary = imaginary }
|
8
|
+
|
9
|
+
let mul z1 z2 = { real = z1.real * z2.real - z1.imaginary * z2.imaginary; imaginary = z1.imaginary * z2.real + z1.real * z2.imaginary }
|
10
|
+
|
11
|
+
let add z1 z2 = { real = z1.real + z2.real; imaginary = z1.imaginary + z2.imaginary }
|
12
|
+
|
13
|
+
let sub z1 z2 = { real = z1.real - z2.real; imaginary = z1.imaginary - z2.imaginary }
|
14
|
+
|
15
|
+
let div z1 z2 =
|
16
|
+
{ real = (z1.real * z2.real + z1.imaginary * z2.imaginary) / (Math.Pow(z2.real, 2.0) + Math.Pow(z2.imaginary, 2.0))
|
17
|
+
imaginary = (z1.imaginary * z2.real - z1.real * z2.imaginary) / (Math.Pow(z2.real, 2.0) + Math.Pow(z2.imaginary, 2.0)) }
|
18
|
+
|
19
|
+
let abs z = Math.Sqrt(Math.Pow(z.real, 2.0) + Math.Pow(z.imaginary, 2.0))
|
20
|
+
|
21
|
+
let conjugate z = { z with imaginary = -z.imaginary }
|
22
|
+
|
23
|
+
let real z = z.real
|
24
|
+
|
25
|
+
let imaginary z = z.imaginary
|
26
|
+
|
27
|
+
let exp z = { real = Math.Cos(z.imaginary) * Math.Exp(z.real); imaginary = Math.Sin(z.imaginary) * Math.Exp(z.real) }
|
@@ -0,0 +1 @@
|
|
1
|
+
module Program = let [<EntryPoint>] main _ = 0
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Complex numbers
|
2
|
+
|
3
|
+
A complex number is a number in the form `a + b * i` where `a` and `b` are real and `i` satisfies `i^2 = -1`.
|
4
|
+
|
5
|
+
`a` is called the real part and `b` is called the imaginary part of `z`.
|
6
|
+
The conjugate of the number `a + b * i` is the number `a - b * i`.
|
7
|
+
The absolute value of a complex number `z = a + b * i` is a real number `|z| = sqrt(a^2 + b^2)`. The square of the absolute value `|z|^2` is the result of multiplication of `z` by its complex conjugate.
|
8
|
+
|
9
|
+
The sum/difference of two complex numbers involves adding/subtracting their real and imaginary parts separately:
|
10
|
+
`(a + i * b) + (c + i * d) = (a + c) + (b + d) * i`,
|
11
|
+
`(a + i * b) - (c + i * d) = (a - c) + (b - d) * i`.
|
12
|
+
|
13
|
+
Multiplication result is by definition
|
14
|
+
`(a + i * b) * (c + i * d) = (a * c - b * d) + (b * c + a * d) * i`.
|
15
|
+
|
16
|
+
The reciprocal of a non-zero complex number is
|
17
|
+
`1 / (a + i * b) = a/(a^2 + b^2) - b/(a^2 + b^2) * i`.
|
18
|
+
|
19
|
+
Dividing a complex number `a + i * b` by another `c + i * d` gives:
|
20
|
+
`(a + i * b) / (c + i * d) = (a * c + b * d)/(c^2 + d^2) + (b * c - a * d)/(c^2 + d^2) * i`.
|
21
|
+
|
22
|
+
Exponent of a complex number can be expressed as
|
23
|
+
`exp(a + i * b) = exp(a) * exp(i * b)`,
|
24
|
+
and the last term is given by Euler's formula `exp(i * b) = cos(b) + i * sin(b)`.
|
25
|
+
|
26
|
+
|
27
|
+
Implement the following operations:
|
28
|
+
- addition, subtraction, multiplication and division of two complex numbers,
|
29
|
+
- conjugate, absolute value, exponent of a given complex number.
|
30
|
+
|
31
|
+
|
32
|
+
Assume the programming language you are using does not have an implementation of complex numbers.
|
33
|
+
|
34
|
+
## Submitting Incomplete Solutions
|
35
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|