新手·ing 发表于 2017-3-26 13:51:54

Python:每日一题 6

本帖最后由 新手·ing 于 2017-3-26 13:58 编辑

题目:斐波那契数列。
程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。

欢迎小伙伴们,一起答题!
如果你有能力,欢迎加入我们!
已经上车老司机:@ooxx7788
{:10_298:}点我上车{:10_298:}

新手·ing 发表于 2017-3-26 13:55:55

@冬雪雪冬 @jerryxjr1220
来新题目啦{:10_256:}

新手·ing 发表于 2017-3-26 14:00:09

#斐波那契数列。
def fib(n):
        a,b = 1,1
        for i in range(n-1):
                a,b = b,a+b
        return a

冬雪雪冬 发表于 2017-3-27 10:25:18

def fib(n):
    yield 0
    x = 1
    y = 1
    yield x
    for i in range(2, n):
      x, y = y, x + y
      yield x
for i in fib(10):
    print(i)

gopythoner 发表于 2017-4-1 00:32:41

这个递归之前学的的时候知道,不喜欢递归,跳过不做

新手·ing 发表于 2017-4-1 18:00:12

gopythoner 发表于 2017-4-1 00:32
这个递归之前学的的时候知道,不喜欢递归,跳过不做

{:10_277:}

余欲渔 发表于 2017-4-11 14:32:05

s=
for i in range(30):
    s.append(s[-1]+s[-2])
    print(s[-1],end=' ')

源稚空 发表于 2017-4-17 21:22:57

# 斐波那契数列方法1 :

def fp(a,b):   
    a = a + b
   #不知道怎么在递归里面停下
    if a>=2000000000000000000 :
      p = input()
    print(a)
    fp(b,a)
a = 0
b = 1
print(a)
print(b)
fp(a,b)


# 斐波那契数列   方法2 :
a = 0
b = 1
i = 0
print(a)
print(b)
for i in range(20):
    c = a
    a = b
    b = b + c
    print(b)

# 0 1 1 2 3 5 8 13

你别说话我烦 发表于 2017-4-17 22:17:41

斐波那契数列不是从1开始么- -

你别说话我烦 发表于 2017-4-17 22:17:49

def goldlist(n):
    if n == 1:
      return
    if n == 2:
      return
    total =
    for i in range(2,n):
      total.append(total+total)
    return total

print goldlist(10)

solomonxian 发表于 2017-4-22 21:33:15

斐波那契数列来源于两只兔子羞羞的计划生育问题,我觉得应该是从1,1开始的吧
递归的方式
def fib(n):
    """递归的方式(太慢了),参数输入需要的斐波那契数列的第n项"""
    if n <= 1:
      return 1
    else:
      return fib(n-1) + fib(n-2)
迭代的方式

def fib2(n):
    """迭代的方式,参数输入需要的斐波那契数列的第n项"""
    num1,num2 = 1,1
    for i in range(n-1):
      num1,num2 = num1+num2, num1
    return num1
知乎上看到一行的代码,模仿写了一个
# 知乎上看到的一行打印斐波那契数列,次数n在最后那个range那
print( for x in [(a, a.append((a, a+a))) for a in ([],) for i in range(100)]])

# 模仿上面写的
print( for b in [(a[-1], a.append(a[-1]+a[-2])) for a in (,) for i in range(100)]])
{:10_256:}

技术部-李宁 发表于 2017-5-2 17:32:56

def myfib1(n,f=0,s=1):# n用来控制运算次数,f表示运算前第一个值,s表示运算前第二个值
    if n == 0:
      return f# 这个很重要,返回的就是结果。
    else:
      return myfib1(n-1,s,f+s)# n用来控制运算次数,s表示运算后第一值,f+s表示运算后的第二个值。(0,1) (1,1) (1,2) (2,3)
print(myfib1(100))

渡漫 发表于 2017-5-27 17:36:40

def Fib_1(x):
    if x == 1 or x == 2:
      return 1
    elif x > 1:
      return Fib_1(x-1) + Fib_1(x-2)
def Fib_2(x):
    a = b = 1
    for i in range(x-2):
      a,b =b,a+b
    return b
for i in range(1,11):
    print(Fib_1(i))
    print(Fib_2(i))
以上

NwkerWang 发表于 2017-5-30 21:39:27

n = int (input ("Please input the number:"))
l =
i = 1
if n == 1:
    print (0)
elif n == 2:
    print (0,1)
elif n>2:
    while n>= 3:
      temp = l+l
      l.append(temp)
      i += 1
      n -= 1
    for each in l:
      print (each,end=' ')

Wofficre 发表于 2017-6-2 18:44:59

n=1
i=1
for a in range(1,100):
      print(i)
      print(n)
      i=i+n
      n=i+n   

抑痒指 发表于 2017-6-10 14:26:22

def fuction1(a,i):
    '''创建列表'''
    while i != 0:
      a.append(0)
      i -= 1

'''
函数1测试代码
a = []
i = 2
fuction1(a,i)
print(a)
'''


def fuction2(a,i):
    '''根据i创捷斐波那契数列'''
    a = 0
    a = 1
    a = 1
    j = 3
    while j!=i :
      a = a + a
      j += 1

a = []
i = int(input('输入需要显示斐波那契数列的个数:'))
fuction1(a,i)
fuction2(a,i)
print(a)

776667 发表于 2017-7-20 00:20:06

def fibonacci_list(x):
    def fibonacci(y):
      if y == 1:
            return 0
      if y == 2:
            return 1
      return fibonacci(y-2) + fibonacci(y-1)
    count = 1
    result_list = []
    while count <= x:
      result_list.append(fibonacci(count))
      count += 1
    return result_list

bozhen 发表于 2017-8-13 12:55:14

本帖最后由 bozhen 于 2017-8-13 12:58 编辑

def number(n):
    if n == 1:
      return 0
    elif n == 2:
      return 1
    else n >= 3:
      return number(n-1) + number(n-2)

木一 发表于 2017-8-20 17:59:59

def fib(n):
    if n == 1:
      result = 0
    elif n == 2:
      result = 1
    elif n > 2:
      result = fib(n - 1) + fib(n - 2)
    return result
n = int(input('请输入你想求斐波拉契数列的第几项:'))
print('斐波拉契数列的第%s项是%d。' % (n,fib(n))){:10_243:}

小山90 发表于 2017-8-23 10:13:13

print("----------------斐波那契数列---------------")

def fibonacci(n):
    x = 0
    y = 1

    for i in range(n):
      x,y = y,x+y

    return x



for j in range(10):
    print(fibonacci(j))
页: [1] 2 3 4 5
查看完整版本: Python:每日一题 6