代码如下:
#include <cstdio>
#include <iostream>
using namespace std;
int n;
int ans;
int f(int a){
if(a==0){return 0;}
if(a==1){return 1;}
if(a==2||a==3){return 2;}
return f(a-2)+f(a/2);
}
int main(){
cin>>n;
for(int i=n/2;i>=1;i--){
ans+=f(i);
}
cout<<ans+1;
return 0;
}
我知道tle可能是因为递归调用次数太多了,但是怎么优化呢