50分递归求助!!!悬关

P1255 数楼梯

buerbute @ 2024-02-25 15:18:38


#include <bits/stdc++.h>
using namespace std;
unsigned n;
unsigned A(unsigned x){
    if(x==1){
        return 1;
    }else if(x==2){
        return 2;
    }
    return A(x-1)+A(x-2);
}
int main (){
    cin>>n;
    cout<<A(n);
    return 0;
}

by buerbute @ 2024-02-25 15:25:10

后面t掉了qwq


by 杜都督 @ 2024-02-25 15:45:37

T了说明递归次数太多了,考虑使用记忆化搜索,即在每次算出某个值时都将其保存到数组中,并在访问某个值时,若该值已算出,则直接访问数组中的值,否则才开递归计算该值


by 杜都督 @ 2024-02-25 15:49:02

顺便,这题用u32过不了,要开高精


|