斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n) 。
示例 1:
输入:n = 2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1
示例 2:
输入:n = 3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2
示例 3:
输入:n = 4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3
提示:
0 <= n <= 30
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/fibonacci-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
公式为:F(n) = F(n - 1) + F(n - 2),每一项都是前两项之和,用 f0保存前两项,f1保存前一项,ans保存该项。
则:ans = f0 + f1;
此时 f0 = f1; f1 = ans 分别表示下一项的前两项
代码如下:
1 class Solution { 2 public int fib(int n) { 3 int f0 = 0; 4 int f1 = 1; 5 int ans = 0; 6 if (n == 0) { 7 return 0; 8 } else if (n == 1) { 9 return 1; 10 } 11 for (int i = 1; i < n; i ++) { 12 ans = f0 + f1; 13 f0 = f1; 14 f1 = ans; 15 } 16 return ans; 17 } 18 }
运行结果:
标签:f0,---,f1,int,示例,力扣,契数,ans,斐波 From: https://www.cnblogs.com/allWu/p/16973816.html