·

可以通过一个数组存递归已经算出来的数字

long long ans[1000];
long long Frog(int x) {
    long long &ans=a[x];
    if(ans!=0) return ans;
    if(x==1||!x) return ans=1;
    return ans=Frog(x-1)+Frog(x-2);
}

本质出现问题的原因就是递归次数过多,很多计算都是重复的,所以加个数组记忆一下就行了

Replies
3

不会编辑C++代码 汗

是的,因为大量重复计算,导致递归效率低下。感谢大佬指点的方法 smile

您是学的Java吗。我是C语言小白,刚开始学敲代码。