LINUX.ORG.RU

История изменений

Исправление satanic-mechanic, (текущая версия) :

Ответ верный, но решение больно уж замороченное...

#!/usr/bin/env python

def dec_c(n):
    C = [1] + [0] * n

    for i in xrange(1, n + 1):
        j = 1
        while j <= i and j <= 512:
            C[i] += C[i - j]
            j <<= 1

    return C[n]

if __name__ == '__main__':
    import sys

    n = sys.argv[1] if len(sys.argv) > 1 else 1024
    print dec_c(n)

Исходная версия satanic-mechanic, :

Ответ верный, но решение больно уж замороченное...

#!/usr/bin/env python

def dec_c(n):
    C = [1] + [0] * 1024

    for i in xrange(1, n + 1):
        j = 1
        while j <= i and j <= 512:
            C[i] += C[i - j]
            j <<= 1

    return C[n]

if __name__ == '__main__':
    import sys

    n = sys.argv[1] if len(sys.argv) > 1 else 1024
    print dec_c(n)