如下:
1 递归的方法:菲列纳波数列 1 1 2 3 5 8 13 .....
Fib(n) n <=2 1
n>2 Fib(n-1) +fib(n-2)
#define _CRT_SECURE_NO_WARNINGS 1 #includeint Fib(int n) { if (n <= 2) return 1; else return Fib(n - 1) + Fib(n - 2); } int main() { int n; scanf("%d", &n); int ret = Fib(n); printf("%dn", ret); return 0;
用递归的方法 简单 但是 运算速度较慢
2 用循环的方法:菲列纳波数列 1 1 2 3 5 8 13 .....
a b c
a b c
a b c
.....................
a+b=c
a=b
b=c
#define _CRT_SECURE_NO_WARNINGS 1 #includeint Fib(int n) { 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 ret = Fib(n); printf("%dn", ret); return 0; }
用循环的方法 复杂 但是 速度快
暑期编程PK赛 得CSDN机械键盘等精美礼品!


