aboutsummaryrefslogtreecommitdiff
path: root/challenge-104/cristian-heredia/python/ch-1.py
blob: eb88e1530798d71952a4ebc7839d3289840ef65c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
'''

TASK #1 › FUSC Sequence
Submitted by: Mohammad S Anwar
Write a script to generate first 50 members of FUSC Sequence. Please refer to OEIS for more information.

The sequence defined as below:

    fusc(0) = 0
    fusc(1) = 1
    for n > 1:
    when n is even: fusc(n) = fusc(n / 2),
    when n is odd: fusc(n) = fusc((n-1)/2) + fusc((n+1)/2)

'''

#Create hash: key (numbers 0-max), value (result fusc)
fusc = {0: 0, 1: 1}
maxi = 50

def sequenceFusc():
    n = 2
    while (n <= maxi):
        #if is even:
        if (n % 2 == 0):
            fusc[n] = fusc[n/2]
        else:
            fusc[n] = fusc[(n-1)/2] + fusc[(n+1)/2]
        n += 1

def printSequence():
    n = 0
    result = ''
    while (n <= maxi):
        result += "{}, ".format(fusc[n])
        n += 1
    result = result[:-2]
    print(result)

sequenceFusc()
printSequence()