loops - 是否可以仅使用 for 循环来实现包含 for 循环的递归函数,该循环包含对上述函数的调用?
问题描述
已经提出了类似的问题,并且普遍的共识是任何东西都可以从递归转换为 for 循环,反之亦然。但是,我找不到将以下伪代码类型的函数转换为 for 循环的方法:
def recursive(n):
if n == 0:
return
for i in range(some_number):
do_sth...
recursive(n-1)
在这种情况下,有 n 个嵌套循环,并且 n 根据给定的参数而变化。仅使用 for 循环时,嵌套循环的数量似乎总是在代码中预先确定,它不会因“输入”而异。有没有办法只使用 for 循环来制作这样的东西?
解决方案
有没有办法只使用 for 循环来制作这样的东西?
好吧,如果您承认while循环是伪代码for循环的情况,那么至少可以制作您的示例:
def nonrecursive(n):
a = []
z = 0
while n:
while n:
i = z
if i == some_number: break
print((n, i))
a += [[n, i]]
n -= 1
z = 0
if not a: break
n, i = a.pop()
i += 1
z = i
推荐阅读
- twilio - Twilio:在 bin 之间传递参数
- python - 如何在 ModelSerializer 中修复“此函数的无效关键字参数”
- oracle - 如何让我的整个列数据作为用户登录我的应用程序?
- javascript - 如何自动将文件夹上传到天蓝色?
- html - adoc 上的选框包含文本文件
- c++ - 如何避免在单元测试中调用方法?
- c - 为什么在函数声明中传递 const 指针参数无效
- date - Yii2:如何更改 2amigos yii2-date-picker-widget 中的日期格式?
- java - JAVA SFTP:虽然通过 JCH 覆盖文件。收到错误“错误消息”
- pyspark - 使用 MagicMock 修补 PySpark 中的函数不会在 spark 运行中修补