#数据结构-fib

时间:2024-04-16 16:47:39
 ///////////////////////////////////////////////////////////////////////////////
//
// FileName : fic.c?
// Version : 0.10
// Author : Ryan Han
// Date : 2013/07/01 10:12:30
// Comment :
//
///////////////////////////////////////////////////////////////////////////////
#include <stdio.h> static long fib(const long n)
{
return == n || == n ? : fib(n - ) + fib(n - );
} int main()
{
//F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)
long lResult = fib();
printf("The resutl is: %ld\n", lResult);
}

上面的方法会导致大量的重复计算,为了避免可以用非递归的方式计算:

 // 19_2.cc
#include <iostream>
using namespace std; size_t fibo(size_t n) {
if (n < )
return n; size_t f1 = ;
size_t f2 = ;
size_t res;
for (size_t i = ; i <= n; i++) {
res = f1 + f2;
f1 = f2;
f2 = res;
}
return res;
} int main() {
size_t n;
cout << "please input n:" << endl;
cin >> n;
cout << "The Fibonacci is: " << fibo(n) << endl;
return ;
}