第28951题 单选题
下列哪个递归函数可以正确实现不计顺序的整数拆分计算?

已知我们需要通过递归实现计算将正整数n拆分为若干个不大于m的正整数之和(不计顺序,如1+2与2+1视为同一种拆分方案)的方案数,现有四个原型为int split(int n, int m)的递归函数实现,其中n为待拆分的正整数,m为允许使用的最大加数:

A

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); }

B

int split(int n, int m) { if(n == 0) return 1; return split(n-1, m) + split(n, m-1); }

C

int split(int n, int m) { if(n == 0 || m == 0) return 1; return split(n, m-1) + split(n - m, m); }

D

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); }

程序运行统计
暂无判题统计
提交0次 正确率0.00%
答案解析