我的代码返回了2个错误,两个都是无法解析的标识符。我查找了什么意思,大多数查询答案都在说我需要先声明该常量,但是我已经这样做了。
我对编码非常陌生,每次遇到此问题是因为我忘记声明常量或变量,我会抓到我的错误,但是我很困惑。
var counter = 2
func fibonacci(_ x:Int ) -> Int {
var a = 1
var b = 1
if counter < x {
let sum = a + b
a = b
b = sum
counter += 1
}
print(sum)
return sum
}
fibonacci(5)
答案 0 :(得分:2)
我敢打赌,您将希望在函数范围内定义counter
(将其作为参数传递可能没有意义),然后在{{1}范围之外定义sum
}这样的语句:
if
答案 1 :(得分:1)
您已在if
条件内声明了变量sum,并在if
条件外使用了变量。
在函数末尾返回b
而不是sum
。您的if
块将只执行一次。您应该使用while loop
var counter = 2
func fibonacci(_ x:Int ) -> Int {
var a = 1
var b = 1
while counter < x {
let sum = a + b
a = b
b = sum
counter += 1
}
print(b)
return b
}
print(fibonacci(5))
您可以使用元组简化交换
var counter = 2
func fibonacci(_ x:Int ) -> Int {
var a = 1
var b = 1
while counter < x {
(a,b) = (b,a+b)
counter += 1
}
print(b)
return b
}
print(fibonacci(5))
答案 2 :(得分:0)
var counter = 2
func fibonacci(_ x:Int ) -> Int {
var a = 1
var b = 1
var sum = 0 //this is when if you want to add sum
//var counter = 0 if you may please work around the counter
if counter < x {
sum = a + b
a = b
b = sum
counter += 1
}
return sum //if you declare sum then return sum could be used
}
var x = fibonacci(5)//here the return value is stored or used for further computations
print(x) // the returned value can be printed in this way or directly print(fibonacci(5))
如果您想学习更多,请通过以下链接https://docs.swift.org/swift-book/LanguageGuide/Functions.html
上面的代码不是斐波那契数列的解决方案,而是您的错误的解决方案。斐波那契数列可以使用逻辑以多种方式求解。由于您的问题仅是错误,因此上述程序可以解决该问题。如果您想使用算法进行研究,请查看以下链接:https://www.codewithc.com/fibonacci-series-algorithm-flowchart/
我希望答案会有所帮助!
答案 3 :(得分:-1)
未解决的标识符错误是因为计数器或sum均未定义变量。
只需定义它们,例如:
var sum = 0;
func fibonacci(counter: Int, x:Int) -> Int {
var a = 1
var b = 1
if counter < x {
sum = a + b;
a = b
b = sum
return fibonacci(counter: counter + 1, x: x)
}
return sum
}
fibonacci(counter: 0, x: 5)
注意:斐波那契功能无法正常运行,但已解决的错误已解决。