- 递归的基本思想就是先解决简单的子问题,再将复杂问题转化为子问题。
recursion(递归) iteration(循环)
for example:
int fab(int n){
if(n==1)return 1;
if(n==2)return 1;
return fab(n-1)+fab(n-2);
}
int main(){
printf("%d",fab(10));
}
- 锯木头问题:
int max_price_memory[10000]={0};
int max_price(int len){
if(max_price_memory[len]>0){
return max_price_memory[len];
}
int permax=0;
if(len>0&&len<7) permax= price[len];
for(int i=0;i<len-1;++i){
int fir=i+1;
int price_now=max_price(fir)+max_price(len-fir);
permax=MAX(price_now,permax);
}
max_price_memory[len]=permax;
return permax;
}
-
provids a way to concatenate actual arguments.