递归和非递归分别实现求第n个斐波那契数。 1,用非递归函数实现求第 n 个斐波那契数
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int Fib(int n){ if (n == 1 || n == 2){ return 1; } int last2 = 1; //第 i - 2 项 int last1 = 1; //第 i - 1 项 int cur = 0; //第 i 项的结果 for (int i = 3; i <= n; ++i){ cur = last1 + last2; last2 = last1; last1 = cur; } return cur; } int main(){ printf("请输入想实现的斐波那契数:"); int x = 0; scanf("%d", &x); printf("%d\n", Fib(x)); system("pause"); return 0; }2,用递归函数实现求第 n 个斐波那契数
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int Fib(int n){ if (n == 1 || n == 2){ return 1; } return Fib(n - 1) + Fib(n - 2); } int main(){ printf("请输入想实现的斐波那契数:"); int x = 0; scanf("%d", &x); printf("%d\n", Fib(x)); system("pause"); return 0; }