jsh*_*303 0 recursion scala tail-recursion
我有几行scala代码定义了一个函数A,它重复调用functionB直到n为零(函数B n次).每次迭代n减少1,并且如上所述更新x0.
def functionA(c: Double, x0: Double, n: Int): Double = {
require(x0>0) //This is a must
while(n>0){
x0=functionB(c, x0) //functionB predefined
n--
}
x0
}
Run Code Online (Sandbox Code Playgroud)
问题在于变量似乎无法像线条那样改变
x0=functionB(c, x0)
n--
Run Code Online (Sandbox Code Playgroud)
正在返回错误.如果当前结构没有改变并且总行数保持不变,我该如何正确地写行?
函数参数是valScala 中的s,因此您无法修改它们.
递归写你的函数.就像是:
def functionA(c: Double, x0: Double, n: Int): Double = {
require(x0 > 0) //This is a must
if (n < 0) {
x0
} else {
functionA(c, functionB(c, x0), n - 1)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |