물음표 살인마의 개발블로그

알고리즘 문제/CodeWar

Fibonacci, Tribonacci and friends

BEstyle 2022. 10. 19. 13:21

DESCRIPTION:

If you have completed the Tribonacci sequence kata, you would know by now that mister Fibonacci has at least a bigger brother. If not, give it a quick look to get how things work.

Well, time to expand the family a little more: think of a Quadribonacci starting with a signature of 4 elements and each following element is the sum of the 4 previous, a Pentabonacci (well Cinquebonacci would probably sound a bit more italian, but it would also sound really awful) with a signature of 5 elements and each following element is the sum of the 5 previous, and so on.

Well, guess what? You have to build a Xbonacci function that takes a signature of X elements - and remember each next element is the sum of the last X elements - and returns the first n elements of the so seeded sequence.

xbonacci {1,1,1,1} 10 = {1,1,1,1,4,7,13,25,49,94}
xbonacci {0,0,0,0,1} 10 = {0,0,0,0,1,1,2,4,8,16}
xbonacci {1,0,0,0,0,0,1} 10 = {1,0,0,0,0,0,1,2,3,6}
xbonacci {1,1} produces the Fibonacci sequence

def Xbonacci(signature,n):
    alist=signature
    count=len(signature)
    i=float(0)
    if n<=len(signature):
        return signature[:n]
    while len(alist)!=n:
        alist.append(sum(alist[int(i):int(i)+count]))
        i+=1
    return alist

'알고리즘 문제 > CodeWar' 카테고리의 다른 글

+1 Array  (0) 2022.10.20
The Vowel Code  (0) 2022.10.20
Valid Phone Number  (0) 2022.10.18
Count IP Addresses  (0) 2022.10.18
Fold an array  (0) 2022.10.17