c_cpp 斐波那契
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 斐波那契相关的知识,希望对你有一定的参考价值。
#include<bits/stdc++.h>
using namespace std;
int fibBU(int n);
int fib(int n);
int fib(int n, map<int,int> &memo);
int main(){
//freopen("ip.txt","r",stdin);
int t;
cin>>t;
while(t--){
int n;
cin>>n;
cout<<"Memoization: "<<fib(n)<<endl;
cout<<"BottomUp: "<<fibBU(n)<<endl;
}
return 0;
}
// Memoization
int fib(int n){
map<int,int> memo;
return fib(n,memo);
}
int fib(int n, map<int,int> &memo){
if(n==1 || n==2){
return 1;
}
if(memo.find(n)!=memo.end()){
return memo[n];
}
memo[n]=fib(n-1)+fib(n-2);
return memo[n];
}
// BottomUp
int fibBU(int n){
vector<int> BU(n+1);
for(int i=1;i<=n;i++){
if(i==1 || i==2){
BU[i]=1;
}else{
BU[i]=BU[i-1]+BU[i-2];
}
}
return BU[n];
}
以上是关于c_cpp 斐波那契的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 斐波那契系列
c_cpp 斐波那契尾递归
c_cpp 斐波那契数列的.cpp
c_cpp 一行代码实现斐波那契数列
斐波那契数列
08《算法入门教程》递归算法之斐波那契数列