fibonacci 数列
F(n) = F(n-1) + F(n-2)
F(1) = F(0) = 1
#include<stdio.h>
#include<iostream>
using namespace std;
#define max 65535
unsigned long long feb_nums[max];
int fibonacci(unsigned long long int n){
if(n == 0 || n == 1){
return 1;
}
return fibonacci(n-1)+fibonacci(n-2);
}
int fibonacci_h(unsigned long long n){
// 分治算法
if(n == 0 || n == 1){
return feb_nums[n] = 1;
}
if(feb_nums[n] != max){
return feb_nums[n];
}
return feb_nums[n] = fibonacci_h(n-1) + fibonacci_h(n-2);
}
int main()
{
int n = 100;
for(int i = 0; i < max; i++){
feb_nums[i] = max;
}
cout << fibonacci_h(n) << endl;
for(int i = 0; i < n; i++){
cout << feb_nums[i] << " ";
}
cout << endl;
return 0;
}