我正在处理这个递归函数,它接收一个数字并倒计时。所以第一次尝试给了我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))
答案 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