用非递归的函数调用形式求斐波那契额数列第n项
递归:
#include<iostream>
using namespace std;
int febo(int);
int main() {
int n;
cin >> n;
cout<<febo(n);
}
int febo(int m) {
if (m <= 2)
return 1;
else
return febo(m - 1) + febo(m - 2);
}
非递归:
#include<iostream>
using namespace std;
int febo2(int);
int main() {
int n;
cin >> n;
cout << febo2(n);
}
int febo2(int m) {
int a = 1,b = 1;
for (int i = 2; i <= m; i++) {
b = a + b;
a = b - a;
}
return a;
}