K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
已知我们需要通过递归实现计算将正整数n拆分为若干个不大于m的正整数之和(不计顺序,如1+2与2+1视为同一种拆分方案)的方案数,现有四个原型为int split(int n, int m)的递归函数实现,其中n为待拆分的正整数,m为允许使用的最大加数:
int split(int n, int m)
int split(int n, int m) { if(n == 0) return 1; if(m == 0 || n < 0) return 0; return split(n, m-1) + split(n - m, m); }
int split(int n, int m) { if(n == 0) return 1; return split(n-1, m) + split(n, m-1); }
int split(int n, int m) { if(n == 0 || m == 0) return 1; return split(n, m-1) + split(n - m, m); }
int split(int n, int m) { if(n == 0) return 1; if(m == 0 || n < 0) return 0; return split(n, m-1) + split(n - m, m-1); }