以下C++代码用于计算将正整数n拆分为若干不超过max_part的正整数之和的无序拆分方案数(拆分顺序不计,例如1+4与4+1视为同一拆分):
int split(int n, int max_part) {
if(n == 0) return 1;
if(max_part == 0 || n < 0) return 0;
// 选择使用max_part作为拆分的一个部分,或者不使用max_part
return split(n - max_part, max_part) + split(n, max_part - 1);
}