omg123460 发表于 2021-5-18 08:40:25

大佬们 如何用栈来实现斐波那契数列啊

当n=1或n=2值为1 然后将其压入栈

Twilight6 发表于 2021-5-18 13:02:09


用 Python 写了栈类:

class Stack(object):
    def __init__(self):
      # 初始化空栈
      self.item = []

    def push(self,item):
      # 压栈
      self.item.append(item)

    def pop(self):
      # 弹出栈顶元素
      return self.item.pop()

    def peek(self):
      # 查看栈顶元素
      return self.item

    def is_empty(self):
      # 检验是否为空栈
      return self.item == []

    def size(self):
      # 返回栈中元素个数
      return len(self.item)

用栈来实现斐波那契数列:

FN = Stack()
user_input = int(input())
for n in range(user_input):
    if n <= 1:
      FN.push(1)
    else:
      F2 = FN.pop()
      F1 = FN.peek()
      FN.push(F2)
      FN.push(F1 + F2)
print(FN.item)

omg123460 发表于 2021-5-18 15:17:36

Twilight6 发表于 2021-5-18 13:02
用 Python 写了栈类:




谢谢大佬 有c语言版的嘛{:10_282:}

Twilight6 发表于 2021-5-18 17:16:00

omg123460 发表于 2021-5-18 15:17
谢谢大佬 有c语言版的嘛



哈哈 没学 C 抱歉

页: [1]
查看完整版本: 大佬们 如何用栈来实现斐波那契数列啊