解题思路: 由于题目条件:
下面三种分法被认为是相同的。
{1,1,5};{1,5,1};{5,1,1};
所以需要控制排序从小到大 dps( ) n是被分数 number为划分数量 k为划分
dps只会产生 1 1 5一种 不会有其他顺序
dps(7,3,1)
dps(6,2,1)
dps(5,1,1)
dps(0,0,5)
注意事项:
参考代码:
import java.util.Scanner;
public class Main {
static int sum=0;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int n = scanner.nextInt();
int number = scanner.nextInt();
dps(n,number,1);
System.out.println(sum);
}
}
public static void dps(int n,int number,int k){
if(number==0&&n==0)
{
sum++;
}
if(number>0&&n>0){
for(int i=k;i<=n;i++){
dps(n-i,number-1,i);
}
}
}
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:519 |
三角形 (C++代码)递归(存在大量重复计算,容易出现时间超限)浏览:774 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:581 |
1113题解浏览:784 |
判定字符位置 (C语言代码)浏览:792 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:565 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:637 |
1199题解浏览:653 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:445 |
孤独的骑士 (C语言代码)浏览:1046 |