阅读程序写结果
#include<iostream>
using namespace std;
int solve(int n,int m)
{
int i,sum;
if(m==1) return 1;
sum=0;
for(i=1;i<n;i++)
sum+= solve(i,m-1);
return sum;
}
int main()
{
int n,m;
cin>>n>>m;
cout<<solve(n,m)<<endl;
return 0;
}输入:7 4
看到递归求和 → 整数划分方案数
易混淆顺序排列与无序划分,本题为无序。
考点:递归|整数划分
输入两个正整数 n 和 m,调用 solve(n,m) 计算将整数 n 拆分成 m 个正整数之和的方案数(无序)。