AKSZ-递归算法
2024-04-14 16:57:11
发布于:广东
递归算法
自己调用自己
递归要素
- 递归定义
- 递归边界
数组最好开在全局区
记忆化搜索
#include<bits/stdc++.h>
using namespace std;
const int maxn=1000;
long long dp[maxn];
long long f(int n){
if(n==1||n==2) return 1;
if(dp[n]!=-1) return dp[n];
return dp[n]=f(n-1)+f(n-2);
}
int main(){
memset(dp,-1,sizeof(dp));
int a;
cin >> a;
cout << f(a);
return 0;
}
}
辗转相除法
#include<bits/stdc++.h>
using namespace std;
long long f(int n,int m){
if(m==0) return n;
return f(m, n%m);
}
int main(){
int a,b;
cin >> a >> b;
cout << f(a,b);
return 0;
}
时间复杂度:
唯一分解定理
这里空空如也
有帮助,赞一个