【发布时间】:2016-02-29 14:26:28
【问题描述】:
我需要编写一个倒计时的代码,以 2 步递减,直到达到零,然后在每个整数之间再以 1 步递增计数。
举个例子,如果我定义一个函数updown(n)并写updown(7),它应该给出:
6 4 2 0 1 2 3 4 5 6 7
这是我的尝试:
def updown(n,m):
while n>=1:
print(n-1)
n=n-m
while n<=7:
print(n)
n=n+1
这需要 m 步,在我的情况下是 m=2。当我运行代码时,我得到了
6 4 2 0 -1 0 1 2 3 4 5 6 7
如您所见,出现了一个负整数,这是错误的。另外,我的代码中有 n
我被困住了,不知道该怎么办。它应该是一个递归代码,不应使用内置函数。原因是我想了解基础知识并从那里继续,没有任何捷径。
【问题讨论】:
-
为什么第一个打印的值应该是6?不应该是7吗?
-
我忘记了它应该给每个偶数并减少2个步骤。对不起
-
您的起始代码不是递归的。递归函数是调用自身的函数。如果这是编程课程的作业,那么您应该重新考虑您的实现。像this 这样的东西会是递归的(也有点令人费解,我只是快速写了一个例子)。