62,614
社区成员
发帖
与我相关
我的任务
分享
import java.util.*;
import java.io.*;
import static java.lang.System.out;
public class Test{
public static int a[] = new int[36];//存放输入数据
public static long count = 0;//用于计数,帮助分析程序是否正确
public static int result[] = new int[7];//存放所选的5个数,与2个随机组合的数,下标从0开始
public static void store(int[] result) throws Exception{
FileWriter fw = new FileWriter(new File("Test.txt"),true);
for(int i=0;i<result.length;i++){
fw.write(result[i]+" ");
}
fw.write("\n");
fw.close();
}
public static void combine(boolean[] b)throws Exception{
for(int i=1;i<=35;i++){//遍历
if(b[i]) continue;//在5个之中用过了,直接跳过
for(int j=i+1;j<=30;j++){//第i个依次与第j个组合
if(b[j]) continue;//同上
result[5] = a[i]; //把这两个加入到选好的5个里面
result[6] = a[j];
Arrays.sort(result);
//情况比较多,存储到文件中
count++;
store(result);
}
out.println();
}
}
public static void main(String[] args) throws Exception{
int i=0,j=0,k=0,l=0,m=0;
boolean[] b = new boolean[36]; //默认是false,不用初始化了
Scanner cin = new Scanner(System.in);
out.println("请输入35个数字");
for(i=1;i<=35;i++)
a[i] = cin.nextInt();//如果不是整数,换一下函数
int inc = 0;
for(i=1;i<=31;i++){
b[i] = true;
result[inc++]=a[i];
for(j=i+1;j<=32;j++){
b[j] = true;
result[inc++]=a[j];
for(k=j+1;k<=33;k++){
b[k] = true;
result[inc++]=a[k];
for(l=k+1;l<=34;l++){
b[l] = true;
result[inc++]=a[l];
for(m=l+1;m<=35;m++){
b[m] = true;
result[inc++]=a[m];
combine(b);
//退回的过程要消除之前的选择
inc--;
b[m] = false;
}
inc--;
b[l] = false;
}
inc--;
b[k] = false;
}
inc--;
b[j] = false;
}
inc--;
b[i] = false;
}
out.println("总计:"+count);
}
}
import java.util.Scanner;
public class Test{
public static void main(String[] args)throws Exception{
int a[] = new int[35];
int i=1;
int count=0;
boolean[] b = new boolean[35]; //默认是false,不用初始化了
Scanner cin = new Scanner(System.in);
for(i=1;i<=30;i++)
a[i] = cin.nextInt();//如果不是整数,换一下函数
for(i=1;i<30;i++){//遍历
for(int j=i+1;j<=30;j++){//第i个依次与第j个组合
count++;
System.out.print("("+a[i]+", "+a[j]+")");
}
System.out.println();
}
System.out.println("总计:"+count);
}
}