Професионална програма
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