写了个记忆化搜索发现wa了一半的点(输入为47就wa了不是炸数据大小的问题),没看懂哪个地方思路错了,求各位大犇看看
#include <stdio.h>
#include <string.h>
#define N 5050
typedef unsigned long long ull ;
ull memo[N];
int cal(int x,int y){
ull sum=0;
if(memo[x]!=0) return memo[x];
if(y==0) return 0;
if(x==y-1) return 1;
if(x==y) return 1;
sum=cal(x+1,y)+cal(x+2,y);
memo[x]=sum;
return sum;
}
int main(){
int n;
memset(memo,0,sizeof(memo));
scanf("%d",&n);
printf("%d",cal(0,n));
return 0;
}