Последовательность сегментированных чисел или простых чисел измерения ( OEIS A002048 ) представляет собой последовательность чисел, так что каждый член является наименьшим положительным (больше нуля) числом, которое не может быть составлено из суммы предыдущих последовательных чисел, с a(0) = 1
.
пример
Для расчета a(7)
мы сначала рассчитаем a(0->6) = [1, 2, 4, 5, 8, 10, 14]
. затем мы начинаем с нуля и перебираем числа, пока не найдем одно, которое не является суммой одного или нескольких последовательных чисел в последовательности.
1 = 1
2 = 2
3 = 1 + 2
4 = 4
5 = 5
6 = 2 + 4
7 = 1 + 2 + 4
8 = 8
9 = 4 + 5
10 = 10
11 = 2 + 4 + 5
12 = 1 + 2 + 4 + 5
13 = 5 + 8
14 = 14
15 = ????
Поскольку пятнадцать не могут быть получены путем суммирования любой последовательной подпоследовательности, и каждое меньшее число может быть пятнадцатью, это следующее число в последовательности. a(7) = 15
задача
Ваша задача - взять число (стандартными методами) и вывести n-й член в этой последовательности (стандартными методами вывода). Это код-гольф, и вы будете забиты как таковые.
Тестовые случаи
0 -> 1
1 -> 2
2 -> 4
3 -> 5
4 -> 8
5 -> 10
6 -> 14
7 -> 15
8 -> 16
9 -> 21
()
чтобы сделать его правильной функцией. Частично применяется!!
раздел оператора и должен быть заключен в()
чтобы сделать его функцией. Без этого это просто фрагмент, который становится функцией (или «значением» для использования строгих терминов Haskell) с отсутствующим аргументом.