zoukankan      html  css  js  c++  java
  • python3 Fibonacci数列

    题目:

    Fibonacci数列是这样定义的:
    F[0] = 0
    F[1] = 1
    for each i ≥ 2: F[i] = F[i-1] + F[i-2]
    因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数。

    递归法:

    def fib_recur(n):
      assert n >= 0, "n > 0"
      if n <= 1:
        return n
      return fib_recur(n-1) + fib_recur(n-2)
    needline=[]
    for i in range(0, 20):
        print(fib_recur(i), end=' ')
        need=fib_recur(i).split
        needline+=need
    print(needline)

    现在题目是这样的,就换了一个实现方式:

    给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。

    N = int(input()) #输入值
    F0 = 0
    F1 = 1
    while N > F1: #从2开始,生成Fibonacci数列,当F1大于N时,数列停止生成
        temp = F0
        F0 = F1
        F1 = F1 + temp
        #print(F1)
    step = min(abs(N-F1),abs(N-F0))
    print(step)
  • 相关阅读:
    huffman压缩解压文件
    C++ fstream 详解
    huffman编码
    ios cocoapods
    POI2Vec: Geographical Latent Representation for Predicting Future Visitors
    latex生成pdf 出现missing$ inserted
    矩阵、向量求导法则

    矩阵范数求导
    hive
  • 原文地址:https://www.cnblogs.com/zmh-980509/p/12503750.html
Copyright © 2011-2022 走看看