Loading...
StellaU18 avatar StellaU18 1 Точки

Задача - Множество от сумите на последните k числа

  • Здравейте! Имам проблем с една задача за масиви и честно казано нямам идея как да я реша. Ще се радвам на малко помощ, масивите наистина са ми дооста объркващи. :) Благодаря предварително!

    Задачата е следната:

    Въведете две числа n и k. Създайте и изведете следното множество от  n елемента:

  • Първият елемент е : 1
  • Всички други елементи са  = сбор от предишните k елемента (ако няма k елемента преди текущия, то да се изведе  сбора на всички до момента)
  • Пример: n = 9, k = 5 -> 120 = 4 + 8 + 16 + 31 + 61
  • Примери

    Вход

    Изход

    6

    3

    1 1 2 4 7 13

     

    8

    2

    1 1 2 3 5 8 13 21

     

    9

    5

    1 1 2 4 8 16 31 61 120

Тагове:
0
C# Web Development Basics 13/02/2021 20:46:18
bad12 avatar bad12 26 Точки
let solve = (n, k) =>
    n === 1
        ? [1]
        : solve(n - 1, k).concat(
              solve(n - 1, k)
                  .slice(Math.max(0, n - k - 1))
                  .reduce((a, b) => a + b)
          );

 

0
StellaU18 avatar StellaU18 1 Точки

Благодаря ви много, но дали ще можете да ми го напишете като за C#?

0
bad12 avatar bad12 26 Точки

Ето транспилирано на C#, като съм ти направил и итеративно решение, ако рекурсивното ти е нясно, какво се случва:

Итеративно решение:

https://pastebin.com/kQMXte5x

Рекурисвно решение:

https://pastebin.com/EksGSwCn

0
StellaU18 avatar StellaU18 1 Точки

Много, много благодаря!

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.