File tree 3 files changed +11
-2
lines changed
3 files changed +11
-2
lines changed Original file line number Diff line number Diff line change 1
- @ rem
1
+ git @ rem
2
2
@ rem Copyright 2015 the original author or authors.
3
3
@ rem
4
4
@ rem Licensed under the Apache License, Version 2.0 (the "License");
Original file line number Diff line number Diff line change @@ -14,8 +14,12 @@ class Factorial {
14
14
* @return returns the factorial of a number by an iterative method
15
15
*/
16
16
fun compute (number : Int ) : Int {
17
+ if (number <= 1 ) {
18
+ return 1
19
+ }
20
+
17
21
var result = 1
18
- for (i in 1 .. number) {
22
+ for (i in 2 .. number) {
19
23
result * = i
20
24
}
21
25
return result
@@ -25,6 +29,7 @@ class Factorial {
25
29
* worst time: O(n)
26
30
* amount of memory: O(n) - stack for recursion
27
31
*
32
+ * @return returns factorial recursively
28
33
*/
29
34
fun computeRecursive (number : Int ) : Int {
30
35
return if (number <= 1 ) {
Original file line number Diff line number Diff line change @@ -9,13 +9,17 @@ internal class FactorialTest {
9
9
10
10
@Test
11
11
fun test_iterative () {
12
+ assertEquals(1 , factorial.compute(0 ))
13
+ assertEquals(1 , factorial.compute(1 ))
12
14
assertEquals(6 , factorial.compute(3 ))
13
15
assertEquals(120 , factorial.compute(5 ))
14
16
assertEquals(720 , factorial.compute(6 ))
15
17
}
16
18
17
19
@Test
18
20
fun test_recursive () {
21
+ assertEquals(1 , factorial.compute(0 ))
22
+ assertEquals(1 , factorial.compute(1 ))
19
23
assertEquals(6 , factorial.computeRecursive(3 ))
20
24
assertEquals(120 , factorial.computeRecursive(5 ))
21
25
assertEquals(720 , factorial.computeRecursive(6 ))
You can’t perform that action at this time.
0 commit comments