【发布时间】:2021-10-21 10:13:34
【问题描述】:
我正在尝试在递归函数中概括循环...
基本的双循环是以下函数:
func multiLoops(start ix:Int, upTo n:Int) {
for i in ix...n {
for j in i+1 ... n+1 {
print("it is \(i) \(j)")
}
}
}
multiLoops(start: 3, upTo: 6)
结果如下:
it is 3 4
it is 3 5
it is 3 6
it is 3 7
it is 4 5
it is 4 6
it is 4 7
it is 5 6
it is 5 7
it is 6 7
我对递归函数的尝试如下:
func multiLoopsRecursive(start ix:Int, upTo n:Int, loopNumber:Int){
var loopNumber = loopNumber
var previous_i = ix
func loop(start ix:Int, upTo n:Int) {
for i in ix + 1...n {
print("it is \(previous_i) \(i)")
if loopNumber > 1 {
loopNumber -= 1
previous_i = i
loop(start: previous_i+1, upTo: n+loopNumber)
}
}
}
loop(start: ix, upTo: n)
}
multiLoopsRecursive(start: 3, upTo: 6, loopNumber: 2)
结果如下...
it is 3 4
it is 4 6
it is 4 7
it is 4 5
it is 4 6
与基本的双循环不太一样... 我真的被屏蔽了…… 谢谢您的帮助... 问候 克
【问题讨论】: