至于你这个问题,
参照我博客中的
http://blog.csdn.net/rzleilei/article/details/10461653
吧,几乎是一模一样的,从M个中选出N个,无序
参照我博客中的
http://blog.csdn.net/rzleilei/article/details/10461653
吧,几乎是一模一样的,从M个中选出N个,无序
解决方案 »
- 初学者: java垃圾回收器
- 要选择技术架构,请教用socket和用webservice有什么区别各自的优缺点,请牛人给予指点
- j2ee的项目在我电脑有网的时候打不开,把网断了又可以了,是怎么回事啊?
- logic:iterate标签内的javabean值的提交问题
- 定位特定属性值的节点,再在这个节点里的末尾添加新的子节点
- 关于类的问题
- 请教大家jdbc调用存储过程中的“?”的具体用法?
- 用maven管理j2ee的项目,怎么设置那些与j2ee有关的包的依赖?
- HttpSessionBindingListener接口怎么用??
- Can not issue data manipulation statements with executeQuery()
- HQL UPDATE IF函数
- 自连接表的相关问题(树形结构)
貌似不适用,你可以试试,不符合LZ要求
我说的几乎一摸一样并不是完全一样
这题就是简单的for循环+排除的话那就有点可悲了,比如我说一种
构建List存储所有可能
List<String>
for(遍历a的可能,0到10){
for(遍历b的可能,0到10-a){
for(遍历c的可能,0到10-a-b){
//这里就是一个排除的功能,都建对象,把最大的那个数放到第一位里,最小的放到最后面,然后把这数字构建成字符串,String,判断List中是否有,如果没有添加进去就行了。
}
}
}
//最后统计List长度就ok了。我想说的和我那个例子有极大相似性,是想说能否阻断式的去计算,而不是用这种遍历了所有可能后的排除。
①最少的盘子放了一个,这样每个盘子至少一个,n个盘子先放上n个,剩下的m-n个可以随便放
②最少的盘子没有放,这样剩下的n-1个盘子还是随便放m个
import java.util.Scanner;public class MNAppleTest { public static void main(String[] args) { Scanner in = new Scanner(System.in);
int N, M; // M Apple, N Disk
M = in.nextInt();
N = in.nextInt();
System.out.print("共有"+cal(M, N)+"种结果");
} private static int cal(int m, int n) {
if (m < 0)
return 0;
if (m == 0 || n == 1)
return 1;
return cal(m - n, n) + cal(m, n - 1); }}