斐波拉契数

举报
Rolle 发表于 2024/08/07 21:47:24 2024/08/07
【摘要】 509. 斐波那契数链接斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:代码语言:txt复制F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。示例1:代码语言:txt复制输入:2输出:1解释:F(2) = F(1)...

509. 斐波那契数

链接

斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

代码语言:txt
复制
F(0) = 0,   F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.

给定 N,计算 F(N)。

示例1:

代码语言:txt
复制
输入:2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1.

示例2:

代码语言:txt
复制
输入:3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2.

示例3:

代码语言:txt
复制
输入:4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3.

提示:

  • 0 ≤ N ≤ 30

go语言

代码语言:txt
复制
func fib(N int) int {
	if N == 0 {
		return 0
	}

	if N <= 2 {
		return 1
	}

	n1, n2 := 1, 1 // n1为n-1,n2为n-2

	for i := 3; i < N; i++ {
		n1, n2 = n1+n2, n1
	}

	return n1 + n2

}

func fib2(n int) int {
       if n==0 ||n==1{
        return n
    }
    dp:=make([]int,n+1)
    dp[0]=0
    dp[1]=1
    for i:=2;i<=n;i++{
        dp[i]=(dp[i-1]+dp[i-2])%1000000007
    }
    return dp[n]
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。