Coding Challenge #10

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 #10, w ramach którego przygotowaliśmy dla Ciebie:

Zadanie nr 1 (Folder w repozytorium 19):

Twoje zadanie jest bardzo proste.

Funkcja, którą stworzysz musi zwracać piramidę. Przyjmuje ona parametr n, który wskazuje z ilu pięter piramida ma się składać.

Na przykład, dla n = 4, Twoja funkcja musi zwrócić następującą piramidę:

   /\
  /  \
 /    \
/______\ 

Dla n = 6

     /\
    /  \
   /    \
  /      \
 /        \
/__________\

Dla n = 10

         /\
        /  \
       /    \
      /      \
     /        \
    /          \
   /            \
  /              \
 /                \
/__________________\

Uwaga: zawsze na końcu łańcucha niezbędne jest dodanie znaku nowej linii "\n". Przypadek n = 0, powinien więc zwracać "\n".

Zadanie nr 2 (Folder w repozytorium 20):

Janek lubi chodzić do kina. Może On wybrać system biletowy A lub system biletowy B.

System A: kup bilet za 15 $ za każdym razem.
System B: kup kartę za 500 $ i za każdym razem kub bilet, którego cena jest wartością 0,90 ceny poprzedniego biletu.

Przykład (jeżeli Janek idzie 3 razy do kina):

System A: 15 * 3 = 45
System B: 500 + 15 * 0,90 + (15 * 0,90) * 0,90 + (15 * 0,90 * 0,90) * 0,90 (= 536.5849999999999, bez zaokrąglania dla każdego biletu)

Janek chce wiedzieć ile razy musi iść do kina, aby ostatetczna cena w systemie biletowym B po zaokrągleniu do następnego dolara, była niższa niż w przypadku systemu biletowego A.

Funkcja movie przyjmuje trzy parametry: cena karty, cena biletu, cześć kwoty zapłaconej za poprzedni bilet i zwraca pierwszy n taki, że:

ceil(cena System B) < cena System A

Przykłady:

movie(500, 15, 0.9) powinno zwrócić 43
(cena w Systemie A = 645, w Systemie B = 634)

movie(100, 10, 0.95) powinno zwrócić 24
(cena w Systemie A = 240, w Systemie B = 235)

Powodzenia!

Kod niezbędny do wykonania challenge’u znajdziesz tutaj (foldery 19 i 20): 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 9

Tutaj znajdziesz zadania z poprzedniego Coding Challenge.