斐波那契数 (通常用 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 int fact(int n) { if (n == 1) return 1; return n * fact(n - 1); } int nums[31] = {0, 1, 1}; int fib(int n) { if (n == 0) return 0; if (n == 1 || n == 2) return 1; if (nums[n - 1] == 0) { nums[n - 1] = fib(n - 1); } if (nums[n - 2] == 0) { nums[n - 2] = fib(n - 2); } return nums[n - 1] + nums[n - 2]; } int fib2(int n) { if (n == 0) return 0; int a = 1;//1 int b = 1;//2 int t = 1; for (int i = 3; i <= n; ++i) { t = a + b; a = b; b = t; } return t; } int main() { //int n = 5; // printf("%d", fact(n)); int n = 8; printf("%d", fib2(n)); return 0; }
斐波那契数
于 2023-08-08 08:38:17 首次发布