diff --git a/lesson_07/conditionals/.env.test b/lesson_07/conditionals/.env.test index de8c44249..1eeddbff6 100644 --- a/lesson_07/conditionals/.env.test +++ b/lesson_07/conditionals/.env.test @@ -1 +1 @@ -HW_VERSION=your homework version here \ No newline at end of file +HW_VERSION=B \ No newline at end of file diff --git a/lesson_07/conditionals/src/lesson7.ts b/lesson_07/conditionals/src/lesson7.ts index cc44be44c..d25140909 100644 --- a/lesson_07/conditionals/src/lesson7.ts +++ b/lesson_07/conditionals/src/lesson7.ts @@ -11,9 +11,11 @@ export function compareStrings(a: string, b: string): number { // The distance will be a number less than 0 if string `a` is lexicographically less than `b`, 1 // if it is greater, and 0 if the strings are equal. const distance = computeLexicographicDistance(a, b); - - // TODO(you): Finish this method. - + if (distance < 0) { + return -1; + } else if (distance > 0) { + return 1; + } return 0; } @@ -24,7 +26,20 @@ export function compareStrings(a: string, b: string): number { * @return The factorial of n. */ export function computeFactorial(n: number): number { - return 0; + if (n < 0) { + return 0; + } else if (n === 0) { + return 1; + } else if (n <= 1) { + return 1; + } + let formula = 1; + for (let i = n; i >= 1; i--) { + formula = formula * i; + + //5! = 5 x 4 -- 20 x 3 -- 60 x 2 -- 120 x 1 + } + return formula; } /** @@ -34,7 +49,20 @@ export function computeFactorial(n: number): number { * @return An array containing the first `n` Fibonacci values. */ export function getFirstNFibonacciNumbers(n: number): number[] { - return []; + let addingToArray: number[] = []; + if (n <= 0) { + return addingToArray; + } else if (n === 1) { + return [1]; + } else if (n === 2) { + return [1, 1]; + } + addingToArray = [1, 1]; + for (let i = 2; i < n; i++) { + const adding: number = addingToArray[i - 1] + addingToArray[i - 2]; + addingToArray.push(adding); + } + return addingToArray; } /** @@ -60,7 +88,12 @@ export function binarySearch( const pivotIndex = Math.floor((start + end) / 2); // The index in the middle of the array. // TODO(you): Finish implementing this algorithm - + if (values[pivotIndex] === value) { + return pivotIndex; + } else if (values[pivotIndex] > value) { + return binarySearch(values, start, pivotIndex - 1, value); + } + return binarySearch(values, pivotIndex + 1, end, value); // If values[pivotIndex] is equal to value then return `pivotIndex`. // Else if values[pivotIndex] is greater than the value, then // call `binarySearch(values, start, pivotIndex - 1, value)` and return its value; diff --git a/lesson_07/conditionals/src/part_b.ts b/lesson_07/conditionals/src/part_b.ts index 22fc01ccc..c9125c729 100644 --- a/lesson_07/conditionals/src/part_b.ts +++ b/lesson_07/conditionals/src/part_b.ts @@ -5,6 +5,11 @@ * @returns */ export function isLeapYear(year: number): boolean { + if (year % 100 === 0 && year % 400 !== 0) { + return false; + } else if (year % 4 === 0) { + return true; + } return false; } @@ -15,6 +20,11 @@ export function isLeapYear(year: number): boolean { * @returns */ export function isEvenOrOdd(num: number): string { + if (num % 2 === 0) { + return "even"; + } else if (num % 2 !== 0) { + return "odd"; + } return ""; } @@ -25,5 +35,14 @@ export function isEvenOrOdd(num: number): string { * @returns */ export function hasVowel(word: string): boolean { + if ( + word.includes("a") || + word.includes("e") || + word.includes("o") || + word.includes("i") || + word.includes("u") + ) { + return true; + } return false; }