北京众智盛达靠谱吗:JAVA,C++:求数字1至10之间可能出现的5个数的所有组合?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/04 22:07:33
如:12345、12346、12347……123410、
12356、12357、……123510、
……
678910 结束。
将所有出现的组合按顺序排列出来。共计252种组合。
我想这个可以用嵌套for循环做,但想了半天不知道怎么做,有高手出来指点迷津吗?

/*
* Created on 2006-1-5
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package test;

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

/**
* @author sq
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class Numbers {

public static void main(String[] args) {

List list = new ArrayList();

for (int i = 1; i <= 6; i++) {
for (int a = i + 1; a <= 7; a++) {
for (int b = a + 1; b <= 8; b++) {
for (int c = b + 1; c <= 9; c++) {
for (int d = c + 1; d <= 10; d++) {
int[] result = new int[5];
result[0] = i;
result[1] = a;
result[2] = b;
result[3] = c;
result[4] = d;
list.add(result);
}
}
}
}
}

System.out.println("共有 " + list.size() + " 个组合");

for (Iterator it = list.iterator(); it.hasNext();) {
int[] theResult = (int[]) it.next();
for (int k = 0; k < theResult.length; k++) {
System.out.print(theResult[k]);
}
System.out.println();
}

}
}

for(int i1=1;i1<11;i1++)
for(int i2=1;i2<11;i2++)
for(int i3=1;i3<11;i3++)
for(int i4=1;i4<11;i4++)
for(int i5=1;i5<11;i5++)
{
output(string(i5)+string(i5)+string(i5)+string(i5)+string(i5));
}