请问各位朋友可以帮我解决一下么?

请问为什么用这个编码解决不了斐波那契数列,运行出来就是打出数字就是数字几?

def fib(i):
    if i == 1 or i == 2:
        return 1
    else:
        return fib(i-1)+fib(i-2)

n = int(input("输入你要得到项:"))
print('第%d项为%d' % (n,fib(n)))

img

斐波那契函数实现:

 
def fab(n):
    if n < 1:
        print("输入错误")
        return -1
    if n == 1 or n== 2:
        return 1
    else:
        return fab(n-1)+fab(n-2)
print(fab(5))