题目描述
将整数n分成k份,且每份不能为空,任意两种分法不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同
的。
1,1,5; 1,5,1; 5,1,1;
问有多少种不同的分法。
输入
输入n,k (6<n≤200,2≤k≤6)
输出
输出一个整数,即不同的分法。
样例输入
7 3
样例输出
4
提示
4种分法为:1,1,5;1,2,4;1,3,3; 2,2,3 说明部分不必输出
用了递归的方法 思路与那个组合数相类似 就是单独拿出一个特殊数
#include<stdio.h>
int w(int,int);
int sum=0;
int main()
{
int n,m;
scanf("%d%d",&n,&m);
w(n,m);
printf("%d",sum);
}
int w(int n,int m){
if(m==1||n==m){sum++;return 1;}
if(m<0||n<m) return 0;
return w(n-1,m-1)+w(n-m,m);
}