题目描述
将整数n分成k份,且每份不能为空,问有多少种不同的分法。当n=7,k=3时,下面三种分法被认为是相同的:1,1,5;1,5,1;5,1,1
输入格式
一行两个数n,k。
输出格式
一行一个整数,即不同的分法数。
输入样例
7 3
输出样例
4
数据范围与提示
6≤n≤200 , 2≤k≤6
示例代码:
import java.util.Scanner;
public class 数的划分 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();//整数n
int k=in.nextInt();//划分为k份
int a[][]=new int[201][7];
a[0][0]=1;
for(int i=1;i<=n;i++)//划分范围1到n
for(int j=1;j<=k;j++){//份数1到k
if(i>=j)//划分的数字要小于份数
a[i][j]=a[i-1][j-1]+a[i-j][j];//递推公式
}
System.out.println(a[n][k]);//分法
}
}
结果测试