鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 6

[复制链接]
发表于 2018-9-6 20:36:21 | 显示全部楼层
j = 1
while j>0:
    n = int(input('请输入数列长度n:'))
    a = [1,1]
    if n >=3:
        for i in range(n-2):
            a.append(a[i]+a[i+1])
        print(a)
    elif n==2:
        print(a)
    elif n==1:
        print(a[0])
    else:
        print('让你输入长度,你个笨蛋,滚回去重新输入')
    j += 1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-12 16:15:40 | 显示全部楼层
def fib():
    n = int(input("请输入一个数:"))
    a,b =1,1
    for i in range(n):
        print(a,end=" ")
        a,b = b,a+b

fib()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-18 17:01:57 | 显示全部楼层
list=[]
f0=0
f1=1
list.append(f0)
list.append(f1)

for i in range(20):
    fn=f0+f1
    f0=f1
    f1=fn
    list.append(fn)
print(list)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-21 17:40:58 | 显示全部楼层
  1. def feb(n):
  2.     if n <= 1:
  3.         return 1
  4.     else:
  5.         return feb(n-1) + feb(n-2)

  6. m = int(input('Please:'))
  7. list = [1]
  8. for i in range(1,m+1):
  9.     list.append(feb(i))

  10. print(list)
复制代码



继续
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-27 15:21:24 | 显示全部楼层
本帖最后由 I_love_fishc_tj 于 2018-10-27 15:29 编辑

z = [0, 1]
for i in range(10):
    z.append(z[-2] + z[-1])
print(z)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-3 21:41:04 | 显示全部楼层
def fib(n):
    if n == 1:
        return 1
    if n == 2:
        return 1
    if n > 2:
        return fib(n-1) + fib(n-2)

a = int(input("请输入要显示的第几个数:"))
print(fib(a))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-21 13:53:04 | 显示全部楼层
写了两个。
一个是函数循环输出。
一个是递归函数计算。

  1. #函数循环的方式输出前n个斐波那数列
  2. n=input('请输入斐波那数列的序列号:')
  3. def fibonacci(n):
  4.         a=0;b=1
  5.         print(a,b,end=' ')
  6.         for i in range(n-2):
  7.                 c=a+b
  8.                 print(c,end=' ')
  9.                 a=b;b=c
  10.                
  11. fibonacci(n)

  12. #递归函数方法返回第n个斐波那数列的值
  13. def fib(n):
  14.         if n==1:
  15.                 #print(0,end=' ')
  16.                 return 0
  17.         elif n==2:
  18.                 #print(1,end=' ')
  19.                 return 1
  20.         elif n>2:
  21.                 #print (fib(n-1)+fib(n-2),end=' ')
  22.                 return fib(n-1)+fib(n-2)
  23.         else:
  24.                 return None
  25. print(fib(n))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-31 18:02:19 | 显示全部楼层
都写得太好了,最喜欢这个:
  1. def do3(n):
  2.     x = 1
  3.     y = 1
  4.     yield x
  5.     for i in range(2, n):
  6.         x, y = y, x + y
  7.         yield x

  8. for i in do3(100):
  9.     print(i)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-14 21:52:51 | 显示全部楼层
def fib(n):
    fib =[0,1]
    for i in range(2,n):
        fib.append(fib[i-1]+fib[i-2])
    for i in range(n):
        print(fib[i],end=' ')
fib(10)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-22 10:21:00 | 显示全部楼层
def fib(num):

    L = [0, 1]
    for n in range(2, num):
        L.append(L[n-1] + L[n-2])

    print(L)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-7 16:47:31 | 显示全部楼层
#1,1,2,3,5,8,13
#1,2,3,4,5
def fib(n):
    n1 = 1
    n2 = 1
    n3 = 1
   
    while(n-2) > 0:   
        n3 = n2 + n1
        n1 = n2
        n2 = n3
        n -= 1

        
    return n3
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-10 22:31:17 | 显示全部楼层
output=int(input("请输入需要求的fibonacci数列的长度:"))
fib=list(range(output))
i=0
while(True):
    i+=1
    if i>=output:
        break
    if i==1:
        fib[i]=1
    else:
        fib[i]=fib[i-1]+fib[i-2]

print(fib)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-26 17:14:07 | 显示全部楼层
肯定是递归la!
def fib(n):
    if n == 1 or n == 2:
        return 1
    else:
        return fib(n-1) + fib(n-2)

for i in range(1, 11):
    print(fib(i))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-4 17:08:32 | 显示全部楼层
i=0
ii=1
iii=0
a=[0,1]
while iii<10000:
    iii=i+ii
    b=[iii]
    a=a+b
    i=ii
    ii=iii
print(a)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-7 17:29:10 | 显示全部楼层
def fib(n):
    lista = [1,1]
    if n < 3:
        return lista[:n]
    else:
        for i in range(2,n):
            lista.append(lista[i-1] + lista[i-2])
        return lista
if __name__ == "__main__":
    print(fib(4))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-8 09:34:11 | 显示全部楼层
本帖最后由 糠爸 于 2019-7-8 09:50 编辑

请大师们指正!

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

list = []
stop_point = int(input("请输入斐波那契额数列的终点项数:"))

if stop_point < 3:
        print("斐波那契额数列至少包括3项!")
        stop_point =int(input("请输入斐波那契额数列的终点项数:"))

a0 = int(input("请输入斐波那契额数列的第一项整数:"))
a1 =int(input("请输入斐波那契额数列的第一项整数:"))
list.extend([a0,a1])

for an in range((stop_point-1)):
        an = list[-2] + list[-1]
        list.append(an)

print(list)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-8 09:36:18 | 显示全部楼层
本帖最后由 糠爸 于 2019-7-8 09:49 编辑
  1. #题目:斐波那契数列。
  2. #程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
  3. #a(n)=a(n-1)+a(n-2)

  4. list = []
  5. stop_point = int(input("请输入斐波那契额数列的终点项数:"))

  6. if stop_point < 3:
  7.         print("斐波那契额数列至少包括3项!")
  8.         stop_point =int(input("请输入斐波那契额数列的终点项数:"))

  9. a0 = int(input("请输入斐波那契额数列的第一项整数:"))
  10. a1 =int(input("请输入斐波那契额数列的第一项整数:"))
  11. list.extend([a0,a1])

  12. for an in range((stop_point-1)):
  13.         an = list[-2] + list[-1]
  14.         list.append(an)

  15. print(list)
复制代码




哈哈,突然发觉直接可以上传编码了,高兴!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-8 13:46:36 | 显示全部楼层
  1. #题目:斐波那契数列。又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……。从第三项开始,后项为前两项之和
  2. #试通过程序输出数列前100项。

  3. #解法1,采用循环迭代变量,
  4. def answer1():
  5.     n1 = 1                     #定义数列第1项
  6.     n2 = 1                     #定义数列第2项
  7.     list1 = [n1,n2]
  8.     for i in range(1,99):      #循环98次生成3-100项
  9.         n = n1 + n2
  10.         list1.append(n)        #计算后项并从后加入目标数列
  11.         n1, n2 = n2, n           #重新将n2,n的数据赋值给n1,n2进行迭代。
  12.     print(list1)
  13.     print(len(list1))

  14. #解法2:可选择传入数列项数进行迭代,默认值为100,采用while循环
  15. def answer2(t=100):
  16.     t = t
  17.     n1 = 1                      # 定义数列第1项
  18.     n2 = 1                      # 定义数列第2项
  19.     list1 = [n1, n2]
  20.     loop = 0                    # 定义循环控制变量
  21.     while loop < t-2:
  22.         n = n1 + n2
  23.         list1.append(n)
  24.         n1, n2 = n2, n
  25.         loop += 1
  26.     print(list1)

  27. #解法3:采用自定义函数Fib(n),输入参数后通过通项公式递归求解前20项。
  28. def answer3(n=20):
  29.     def Fib(n):
  30.         if n ==1 or n == 2:
  31.             return 1                         #递归终点
  32.         else:
  33.             return Fib(n-1) + Fib(n-2)       #抽象出通项公式递归
  34.     list1 = []                               #值加入列表输出
  35.     for i in range(1,n+1):
  36.         list1.append(Fib(i))
  37.     print(list1)
  38.    
  39. if __name__ == '__main__':
  40.     answer1()
  41.     answer2()
  42.     answer3(20)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-25 19:15:32 | 显示全部楼层
  1. def Fabs(x):
  2.           if (x==1) or (x == 2):
  3.                     return 1
  4.           else:
  5.                     return Fabs(x-1)+Fabs(x-2)
  6. def main():
  7.           for i in range(10):
  8.                     print(Fabs(i))

  9. if __name__=='__main__':
  10.          main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-15 11:07:16 | 显示全部楼层
n=int(input("求斐波那契数列第_个数:"))
list=[0,1]
def fs(n):
    i=1
    for i in range(n):
        list.append(list[i-1]+list[i-2])
        i+=1
    return list[n-1]
if n==1:
    print(0)
elif n==1:
    print(1)
else:
    print(fs(n))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-27 16:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表