Coding Challenge #7

Cześć!

Witaj ponownie w serii “Coding Challenge”! Co piątek w ramach tej serii udostępniamy nowe programistyczne wyzwanie. Twoim zadaniem będzie rozwiązanie dwóch zadań, dzięki czemu będziesz miał okazję poćwiczyć swoje umiejętności programowania i rozwiązywania problemów. Do każdego z nich dołączymy zbiór testów, które pozwolą Ci sprawdzić, czy rozwiązałeś je poprawnie.

Pora na Challenge #7, w ramach którego przygotowaliśmy dla Ciebie:

Zadanie nr 1 (Folder w repozytorium 13):

W pewnym małym miasteczku populacja wynosi p0 = 1000 na początku roku. Populacja regularnie wzrasta o 2 procent w ciągu roku oraz 50 nowych mieszkańców, którzy przeprowadzili się z innych miast. Ile lat zjamie miasteczku posiadanie populacji większej lub równej p = 1200 mieszkańców?

Na koniec pierwszego roku:
1000 + 1000 * 0.02 + 50 => 1070 mieszkańców

Na koniec drugiego roku:
1070 + 1070 * 0.02 + 50 => 1141 mieszkańców

Na koniec trzeciego roku:
1141 + 1141 * 0.02 + 50 => 1213 mieszkańców

Miasto osiągnie zamierzoną populację w ciągu 3 lat.

Twoim zadaniem jest napisanie kodu dla funkcji, która przyjmuje następujące parametry:

p0 (populacja początkowa), percent (procentowy roczny wzrost populacji), aug (ilość osób przeprowadzających się do miasteczka co roku), p (zamierzona populacja do osiągnięcia).

Funkcja powinna zwracać liczbę lat n, potrzebną do osiągnięcia populacji większej lub równej p.

Założenia: parametr aug jest liczbą całkowitą, percent - dodatnią liczbą lub zerem (0), p0 i p są dodatnimi liczbami całkowitymi (> 0).

Przykłady:

population(1500, 5, 100, 5000) -> 15
population(1500000, 2.5, 10000, 2000000) -> 10

Zadanie nr 2 (Folder w repozytorium 14):

Pewien sklep internetowy przygotował dla swoich klientów kupony rabatowe na specjalne okazje. Niestety część klientów próbuje oszukać system wprowadzając kupony z nieprawidłowymi kodami lub kupony, których termin ważności minął.

Twoim zadaniem jest napisać funkcję, która będzie sprawdzała czy kupon jest prawidłowy i ważny.

Założenia:

  • kupon traci ważność dzień PO dacie ważności kuponu,
  • daty przekazywane są do funkcji jako łańcuchy znaków w formacie "MIESIĄC DZIEŃ, ROK".

Przykłady:

Kupon ważny:
checkCoupon("123", "123", "July 9, 2015", "July 9, 2015") === true
Kupon nie ważny:
checkCoupon("123", "123", "July 9, 2015", "July 2, 2015") === false

Funkcja przyjmuje następujące parametry:

enteredCode - wprowadzony kod, correctCode - prawidłowy kod, currentDate - aktualna data, expirationDate - data ważności kupony.

Powodzenia!

Kod niezbędny do wykonania challenge’u znajdziesz tutaj (foldery 13 i 14): https://bitbucket.org/23_knots/zk-challange/src/master/.

Aby uruchomić kod, należy wykonać polecenie:
npm install

Następnie dopisać brakujący kod funkcji, a na koniec uruchomić testy poleceniem:
npm test

Powodzenia i do usłyszenia w poniedziałek, kiedy to omówimy możliwe rozwiązania.

Coding Challenge 6

Tutaj znajdziesz zadania z poprzedniego Coding Challenge.