java实现 整数拆分 希望有个算法

一个整数n(n<=100)可以有多种划分,使其分划得一列整数之和为n.例如:
输入:n=4
要求输入一个整数n,把划分序列输出到文件中。
输出文件result.out,格式内容为:
4
3 1
2 2
2 1 1
1 1 1 1
我做出来了

我给你写一个,要给分的呦。代码如下:

import java.util.ArrayList;
import java.util.List;

public class Testxxx {
public void chaifen(int n){
List list = new ArrayList();
chaifendigui(n,list);
}
public void chaifendigui(int n, List list) {
// TODO Auto-generated method stub

for (int i = 1; i <= n; i++) {

System.out.print(i+" ");
if(n>i){
List list2 = new ArrayList();
list2.addAll(list);
list2.add(i);
chaifendigui(n-i,list2);
}else{
System.out.println();
for (int j = 0; j < list.size()-1; j++) {
System.out.print(list.get(j)+" ");
}
}

}
}
public static void main(String[] args) {
Testxxx xx = new Testxxx();
xx.chaifen(10);
}
}追问

你做的不符合题意,http://wenku.baidu.com/view/8b989ce19b89680203d82502.html?st=1 这是我自己写的

追答

符不符合不重要,你把分给我就行

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-19
递归,内部循环

OVER追问

这是个课程设计题目,这样做太简单了吧 而且题目要求拆分数可等于一百,这样的话,运行很慢十几分钟都运行不完

追答

现在的机器,比你想象的速度快很多。 100以内的,估计10ms ?? 太慢了,我猜1ms以内

本回答被网友采纳
相似回答