2019年-fibonacci数列与黄金分割
题目
法一、递归
def fib (n):
if n==1 or n==2:
return 1
return fib(n-1)+fib(n-2)
n = int(input())
a=fib(n)
b=fib(n+1)
print("{:.8f}".format(a/b))
- 只通过了60%的测试
法二、迭代
#动态规划
# def fib (n):
# dp=[0]*(n+1)
# dp[1],dp[1]=1,1
# for i in range(3,n+1):
# dp[i]=dp[i-1]+dp[i-2]
# return dp[n]
#优化
def fib(n):
if(n==1 or n==2):
return 1
pre,cur=1,1
for i in range(3,n+1):
sum=pre+cur
pre=cur
cur=sum
return cur
n = int(input())
if n>20:
print(0.61803399)
else:
a=fib(n)
b=fib(n+1)
print("{:.8f}".format(a/b))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人