已采纳 汪恺恒 中级启示者 用记忆化搜索 核心 int dfs(int x,int k){ if(f[x][k]!=-1) return f[x][k]; if(x==0) return 1; int ans=0; for(int i=1;i<=min(x,k-1);i++){ ans+=dfs(x-i,i); } f[x][k]=ans; return f[x][k]; } ps:板块没错,不过你可以看一下版规