题目描述
把正整数N分解成M个正整数的和,M个加数相同但顺序不同认为是相同的方案,要求总方案数。如3=1+2跟3=2+1是两个相同的方案。
输入
第一行输入两个整数N,M(1<=M<=N<=50)。
输出
输出一个整数表示方案数。
样例输入
5 3
样例输出
2
数据范围限制
1<=M<=N<=50
状态: Accepted
#include<cstdio>
int a[2000]={0};
int s=0,n,m,num,y;
void search(int x,int h)
{
if(x>m)
{
if(s==n)
y++;
return;
}
for(int i=h;i<=n;i++)
if(s+i<=n)
{
s+=i;
search(x+1,i);
s-=i;
}
}
int main()
{
scanf("%d%d",&n,&m);
search(1,1);
printf("%d",y);
}