递归和非递归分别实现求第n个斐波那契数
例如:
输入:5 输出:5
输入:10, 输出:55
输入:2, 输出:1
递归求第n个斐波那契数
可以看函数递归 -CSDN博客
cpp
//递归实现求第n个斐波那契数
int F(int n) {
if ( n == 1 || n == 2) {
return 1;
}
else if (n == 0) {
return 0;
}
else {
return F(n - 1) + F(n - 2);
}
}
int main() {
int n = 0;
scanf("%d", &n);
int r = F(n);
printf("%d", r);
return 0;
}
非递归实现求第n个斐波那契数(迭代)
cpp
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int fact(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 = 0;
scanf("%d", &n);
int a = fact(n);
printf("%d", a);
return 0;
}