TZinovieva

Last K Numbers Sequence JS Fundamentals

Feb 6th, 2023
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function lastKNumbersSequence(n, k) {
  2.     let arr = [1];
  3.     // създава се масив, в който ще се събират стойностите от изчисленията
  4.     for (let i = 1; i < n; i++) {
  5.         // цикъл за въртене през стойностите на поредицата от n брой числа
  6.         // започва от 1 до достигане броя числа по условие n
  7.       let start = Math.max(0, i - k);
  8.       // проверяваме дали началната стойност не е отрицателна
  9.       // i - k представлява БРОЯ числа, предхождащи текущото, които ще сумираме
  10.       let end = i - 1;
  11.         // изчисляваме крайния индекс на предходните k на брой елементи,    
  12.         // които ще сумираме, като i е номера на текущото завъртане на цикъла
  13.       let sum = 0;
  14.       for (let j = start; j <= end; j++) {
  15.         //създава се цикъл за предходните k на брой елементи
  16.         // j представлява текущия индекс от тези елементи
  17.         sum += arr[j];
  18.         //Добавя се стойността на j-тия поред елемент от цикъла в променливата sum
  19.       }
  20.       arr[i] = sum;
  21.       // присвоява се стойността на sum
  22.       // към текущия i-ти елемент от arr масива
  23.       //
  24.     }
  25.     console.log(arr.join(' '));
  26. }
  27.  
  28. WITHOUT EXPLANATIONS
  29.  
  30. function lastKNumbersSequence(n, k) {
  31.     let seq = [1];
  32.     for (let current = 1; current < n; current++) {
  33.       let start = Math.max(0, current - k);
  34.       let end = current - 1;
  35.       let sum = 0;
  36.       for (let i = start; i <= end; i++) {
  37.         sum += seq[i];
  38.       }
  39.       seq[current] = sum;
  40.     }
  41.     console.log(seq.join(' '));
  42. }
Advertisement
Add Comment
Please, Sign In to add comment