猿问

Python递归函数返回一个输入的结果,但不返回另一个输入的结果

我正在尝试使用这两个函数来计算??模?(斐波纳契模m)。第一个输入返回结果,而第二个输入返回None。我真的很困惑这是怎么回事:


def get_period(n,m):

    # calculate period of m using fibonacci series

    modular_list=[]

    for idx,element in enumerate(fib_series(n)[0]):

        modular_list.append(element%m)

        for i in range(len(modular_list)-1):

            if modular_list[i]==0 and modular_list[i+1]==1:

                if i>1:

                    period = idx-1

                    modular_list_period = modular_list[:-2]

                    return(period, modular_list_period)

                else:

                    continue


def fib_series(n):

    lst = [0,1]

    for i in range(n):

        if n>=1:

            lst.append(lst[-1]+lst[-2])

        else:

            return 0

    return lst[:-1], lst[-2]


print(get_period(2015,3)) # returns -> (8, [0, 1, 1, 2, 0, 2, 2, 1])

print(get_period(239,1000)) # returns -> None


qq_花开花谢_0
浏览 185回答 1
1回答

撒科打诨

print(get_period(100,44))#您必须为m传递更少的值,print(get_period(239,90))#像这样,m值应小于n。
随时随地看视频慕课网APP

相关分类

Python
我要回答