首页 > 解决方案 > 使用递归打印图案

问题描述

任何人都可以帮助我为什么我的内核在我运行这段代码时死了

下面是问题:

给定一个正整数n和另一个正整数 k < n
输入:n = 16 k=5
使得输出:16, 11, 6, 1, -4, 1, 6, 11, 16

代码:

def myfunc(no,nr,k,lis=[]):    
    lis.append(nr)
    if nr>=0:
        return myfunc(no,nr-k,k,lis)
    else:
        if no==nr:
            return lis
        else:    
            return myfunc(no,nr+k,k,lis)

myfunc(16,16,5)

标签: pythonrecursion

解决方案


我想到了

def myfunc(nr,k,lis=[],flag=True):

lis.append(nr)
if flag:
    if nr>0:
        return myfunc(nr-k,k,lis)
    else:
        flag=False
if not flag:
    if nr==lis[0]:
        return lis
    else:    
        return myfunc(nr+k,k,lis,False)

推荐阅读