递归倒计时

时间:2017-10-31 23:18:57

标签: python recursion data-structures

我正在处理这个递归函数,它接收一个数字并倒计时。所以第一次尝试给了我0然后是'无' n次,我的第二次尝试抛出了一个RecursionError:比较超过了最大递归深度..请帮忙,继承我的代码:

def count_down(n):
  if n <= 0:
    return n
  else:
    print(count_down(n-1))

print(count_down(10))

def count_down(n):
  if n <= 0:
    return n
  else:
    return(count_down(n) - 1)

print(count_down(10))

3 个答案:

答案 0 :(得分:1)

这样可行

def count_down(n):
    for i in range(n, 0, -1):
        print(i)

唯一的缺陷是,根据我的测试,它不喜欢大数字(超过950)。这是由于过多的递归,除非代码是在没有递归的情况下制作的,否则无法修复,如下所示:

Uint8ClampedArray

答案 1 :(得分:0)

我不知道如果这是你想要的但是试试这个:

def count_down(n):
    if n <= 0:
        return n
    else:
        print n
        return(count_down(n-1))

print(count_down(10))
> 10
> 9
> 8
> 7
> 6
> 5
> 4
> 3
> 2
> 1
> 0

答案 2 :(得分:0)

这是JavaScript代码:

function countdown(n){

  if(n<1){
    return [];
  }else{
     var countArray = countdown(n-1);
     countArray.unshift(n);

    return countArray;
  }
}
console.log(countdown(10)); 

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] // array of recursion