SWUST OJ405斐波那契数列
题目描述 在数学中,斐波那契数列形成一个由以下递归关系定义的序列:也就是说,在两个起始值之后,每个数字是前面两个数字的总和。第一个斐波那契数列,也表示为Fn,对于n = 0,1,...,是:0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811...有时,此序列被视为从 F1 = 1 开始,但更常见的是包含 F0 = 0。斐波那契数列以比萨的莱昂纳多命名,被称为斐波那契,尽管它们在印度早些时候已经被描述过。编写一个程序来输出一个斐波那契数列,n小于40。 输入 a number n , less and equal than 40 输出 a Fibonacci number at n 样例输入 8 样例输出 21 方法一: #include<stdio.h> int f(int n) { if (n == 0) { return 0; } else { int a = 1; int b = 1; int c = 1; while (n > 2) { c = a + b; a = b; b = c; n--; } return c; } } int main() { int n; scanf("%d", &n); int len = f(n); printf("%d ", len); return 0; } 方法二: #include<stdio.h> int main() { int n; scanf("%d", &n); int dp[1000]; dp[0] = 0; dp[1] = 1; int i; for (i = 2; i <= n; i++) { dp[i] = dp[i - 1] + dp[i - 2]; } printf("%d ", dp[n]); }
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
c语言二维数组求最大值