解题思路: 由于题目条件:
下面三种分法被认为是相同的。
{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 人评分
简单的a+b (C语言代码)浏览:538 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:475 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:495 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:468 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:554 |
C语言训练-角谷猜想 (C语言代码)浏览:1708 |
买不到的数目 (C++代码)浏览:868 |
字符串问题 (C语言代码)浏览:1521 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1317 |
蛇行矩阵 (C语言代码)浏览:753 |