#include <iostream> using namespace std; long long F[65]; long long fibonacci(int n) //递归 明显很慢 {//第43项一秒,67项一天,92项三世纪 return (n < 2) ? n : fibonacci(n - 1) + fibonacci(n - 2); } long long fibo(int n)//改进后的递归,动态规划思想 { if (F[n] > 0)return F[n]; return F[n] = ((n < 2) ? n : fibo(n - 1) + fibo(n - 2)); } long long fib(int n) //动态规划 { long long t = 0, g = 1; while (n--) { g = g + t; t = g - t; } return t; } int main() { /*for (int i = 0; i < 64; i++) cout << "fibonacci " << i + 1 << ": " << fibonacci(i) << endl;*/ for (int i = 0; i < 64; i++) cout << "fibonacci " <<i+1<<": "<< fibo(i) << endl; for (int i = 0; i < 64; i++) cout << "fibonacci " << i + 1 << ": " << fib(i) << endl; return 0; }
斐波那契数列(递归和动态规划)
猜你喜欢
转载自blog.csdn.net/dzydzy7/article/details/80412432
今日推荐
周排行