Coding Challenge #9

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

Zadanie nr 1 (Folder w repozytorium 17):

Wszystko co jemy, to woda i sucha masa.

Jan kupił ziemniaki. Ich waga to 100 kilogramów. Ziemniaki zawierają wodę i suchą masę.

Zawartość wody wynosi 99 procent całkowitej masy.

Jan myśli, że ziemniaki są zbyt "mokre" i wkłada je do pieca - w niskiej temperaturze, aby straciły trochę wody.

Po wyjęciu z pieca zawartość wody wynosi tylko 98%.

Jaka jest całkowita waga w kilogramach (zawartość wody plus sucha masa) ziemniaków wyjętych z pieca?

Jan zważył ziemniaki wyjęte z pieca i odczytuje wagę: 50 kilogramów - myśli, że popełnił błąd: "Strata tak dużej wagi przy tak małej zmianie zawartości wody!"

Pomóż Janowi pisząc funkcję potatoes przyjmującą następujące parametry (wszystkie są liczbami całkowitymi):

p0 - początkowy procent wody
w0 - masa początkowa
p1 - końcowy procent wody

Funkcja potatoes powinna zwrócić wagę końcową ziemniaków wyjętych z pieca w1, skróconą zaokrągloną do liczby całkowitej kilogramów.

Przykład:

potatoes(99, 100, 98) => 50

Zadanie nr 2 (Folder w repozytorium 18):

Automatyczny "szyfrant" przypisuje do każdej litery unikalny numeru litery w alfabecie. Na przykład:

 a  b  c  d  e  f  g  h  i  j  k  l  m
 1  2  3  4  5  6  7  8  9 10 11 12 13
 n  o  p  q  r  s  t  u  v  w  x  y  z
14 15 16 17 18 19 20 21 22 23 24 25 26

Zamiast liter w zaszyfrowanym słowie wpisujemy odpowiednią liczbę, np. słowo scout:

 s  c  o  u  t
19  3 15 21 20

Następnie dodajemy do każdej uzyskanej cyfry kolejne cyfry z klucza. Na przykład. W przypadku użycia klucza równego 1939:

   s  c  o  u  t
  19  3 15 21 20
 + 1  9  3  9  1
 ---------------
  20 12 18 30 21
   m  a  s  t  e  r  p  i  e  c  e
  13  1 19 20  5 18 16  9  5  3  5
+  1  9  3  9  1  9  3  9  1  9  3
  --------------------------------
  14 10 22 29  6 27 19 18  6  12 8

Twoim zadaniem jest napisanie funkcji, która przyjmuje jako parametry ciąg znaków oraz klucz i zwraca tablicę liczb całkowitych reprezentujących kodowany wyraz.

Założenia: wejściowy ciąg znaków składa się tylko z małych liter, klucz jest liczbą dodatnią.

Przykład

encode("scout", 1939); ==> [20, 12, 18, 30, 21]
encode("masterpiece", 1939); ==> [14, 10, 22, 29, 6, 27, 19, 18, 6, 12, 8]

Powodzenia!

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

Tutaj znajdziesz zadania z poprzedniego Coding Challenge.