@@ -24,13 +24,11 @@ export function canVote(age: number): boolean {
24
24
export function compareStrings ( a : string , b : string ) : number {
25
25
const distance = computeLexicographicDistance ( a , b ) ;
26
26
27
- if ( a > b ) {
27
+ if ( distance < 0 ) {
28
28
return - 1 ;
29
- } else if ( b > a ) {
30
- return 1 ;
31
- } else {
32
- return 0 ;
33
29
}
30
+
31
+ return distance ;
34
32
// The distance will be a number less than 0 if string `a` is lexicographically less than `b`, 1
35
33
// if it is greater, and 0 if the strings are equal.
36
34
@@ -49,13 +47,13 @@ export function compareStrings(a: string, b: string): number {
49
47
export function convertGpaToLetterGrade ( gpa : number ) : string {
50
48
if ( gpa < 0 || gpa > 4.0 ) {
51
49
return "Invaild GPA" ;
52
- } else if ( gpa <= 0.9 ) {
50
+ } else if ( gpa < 1 ) {
53
51
return "F" ;
54
- } else if ( gpa < 1.25 && gpa >= 1.0 ) {
52
+ } else if ( gpa < 1.3 && gpa >= 1.0 ) {
55
53
return "D" ;
56
- } else if ( gpa < 1.75 && gpa >= 1.25 ) {
54
+ } else if ( gpa < 1.7 && gpa >= 1.3 ) {
57
55
return "D+" ;
58
- } else if ( gpa < 2.0 && gpa >= 1.75 ) {
56
+ } else if ( gpa < 2.0 && gpa >= 1.7 ) {
59
57
return "C-" ;
60
58
} else if ( gpa < 2.3 && gpa >= 2.0 ) {
61
59
return "C" ;
@@ -68,10 +66,9 @@ export function convertGpaToLetterGrade(gpa: number): string {
68
66
} else if ( gpa < 3.7 && gpa >= 3.3 ) {
69
67
return "B+" ;
70
68
} else if ( gpa < 4.0 && gpa >= 3.7 ) {
71
- return "A" ;
72
- } else {
73
- return "A+" ;
69
+ return "A-" ;
74
70
}
71
+ return "A" ;
75
72
}
76
73
77
74
/**
@@ -82,7 +79,7 @@ export function convertGpaToLetterGrade(gpa: number): string {
82
79
*/
83
80
export function computeFactorial ( n : number ) : number {
84
81
let sum = 1 ;
85
- for ( let i = 1 ; 1 <= n ; i ++ ) {
82
+ for ( let i = 1 ; i <= n ; i ++ ) {
86
83
sum = sum *= i ;
87
84
}
88
85
return sum ;
@@ -94,7 +91,11 @@ export function computeFactorial(n: number): number {
94
91
* @return The sum of all the values.
95
92
*/
96
93
export function addNumbers ( values : number [ ] ) : number {
97
- return 0 ;
94
+ let sum = 0 ;
95
+ for ( let i = 0 ; i < values . length ; i ++ ) {
96
+ sum = sum + values [ i ] ;
97
+ }
98
+ return sum ;
98
99
}
99
100
100
101
/**
@@ -104,7 +105,20 @@ export function addNumbers(values: number[]): number {
104
105
* @return An array containing the first `n` Fibonacci values.
105
106
*/
106
107
export function getFirstNFibonacciNumbers ( n : number ) : number [ ] {
107
- return [ ] ;
108
+ if ( n === 0 ) {
109
+ return [ ] ;
110
+ } else if ( n === 1 ) {
111
+ return [ 1 ] ;
112
+ } else if ( n === 2 ) {
113
+ return [ 1 , 1 ] ;
114
+ }
115
+ const fibArray = [ 1 , 1 ] ;
116
+
117
+ for ( let i = 2 ; i < n ; i ++ ) {
118
+ const nextFibNumber = fibArray [ i - 1 ] + fibArray [ i - 2 ] ;
119
+ fibArray . push ( nextFibNumber ) ;
120
+ }
121
+ return fibArray ;
108
122
}
109
123
110
124
/**
0 commit comments