其输出结果如下:
其代码如下:
public class PaiXu{
private int[] a={2,3,5,7}; //按从小到大排列,若不是,则先排序
private int zgw=0;
public PaiXu(){
int arraySzie=a.length;
int [] gw=new int [arraySzie-1];
for (int i=0;i<gw.length;i++){
gw[i]=0;
}
sort(arraySzie,arraySzie,a,gw);
}
private void sort(int no,int n,int[] a,int[] gw){
//参数:数字位数,数组个数,数组,高n-1位数组
int dqw=0;//存储当前位的数值
for (int k=1;k<=n;k++){
if (n==1){
int sum=0;
for (int i=0;i<gw.length;i++){
sum=sum+gw[i];
}
//换行
if (zgw!=gw[0]){
zgw=gw[0];
System.out.println("/n");
}
System.out.print(sum+a[k-1]+" "); //只有一位时,输出
}else{
int cs=1;
for(int i=1;i<n;i++){
cs=cs*10;
}
dqw=cs*a[k-1]; //获得当前位的数值
gw[no-n]=dqw;
//System.out.println("n="+n+" k="+k+" dqw="+dqw);
int[] b=new int[n-1];
int flag=0; //新数组下标
for(int i=1;i<=a.length;i++){ //新建一个数组,用来存放,没有输出过的数字
if (i!=k){ //判断有没有输出过
b[flag++]=a[i-1]; //没有的话,添加到新数组 b 中
}
}
sort(no,n-1,b,gw); //递归调用
}
}
}
public static void main(String args[]){
new PaiXu();
}
}