虽然学过Java但是大部分都忘记了。下面是别人采用的答案你看看能不能用吧。
创新互联是一家专业提供于洪企业网站建设,专注与网站制作、成都网站设计、H5页面制作、小程序制作等业务。10年已为于洪众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
* 首先java只可以在class中【声明】成员变量,而不能对变量赋值,
* 你只能在方法中(例如:main方法或者其他方法)对变量赋值。** 但是class中允许在声明变量的同时,为变量赋【初始值】。
* 也就是说 int[] anArray2 = new int[10]; 这样是允许的
* 这里的 new int[10] 是初始化操作(不是赋值操作)。
* *///anArray = new int[10];
static int[] bArray = null;
public void setValue(){
anArray = new int[10]; //这里是可以的,方法内可以赋值。}public static void main(String[] args){
//anArray = new int[10];/*** 这里是不允许的,因为主方法(即main方法)是静态的(由static修饰)
* 所以如果是静态的成员变量可以赋值,例如 bArray
* 下面的两种方式都是可以赋值的* */bArray = new int[10];
bArray = new int[]{1,2,2,1,1,1,1,1,1,1};}}b答案补充/b
static修饰的方法,只可以调用static修饰的成员变量
所以在main方法中为【非静态】的anArray数组赋值是不允许的。
public class sort
{
public static void maopaosort(int array[])
{
int mark=0;
for(int i=0;iarray.length;i++)
{
System.out.print("第"+(i+1)+"次排序:");
for(int j=0;jarray.length;j++)
{
if(array[i]=array[j])
{
mark=array[i];
array[i]=array[j];
array[j]=mark;
}
System.out.print(array[j]);
}
//System.out.print(array[i]);
System.out.println();
}
}
public static void main(String [] args)
{
int array[]={4,7,2,6,8,1,5,9,3};
maopaosort(array);
}
}
结果:
F:\javac sort.java
F:\java sort
第1次排序:442671583
第2次排序:492671583
第3次排序:249671583
第4次排序:246971583
第5次排序:246791583
第6次排序:124679583
第7次排序:124567983
第8次排序:124567893
第9次排序:123456789
int[] arr,它的意思是定义一个变量arr,这边变量的类型是int[],即是一个int型的数组,然后此时就会在栈内存中分配空间存储这个变量,可以换个方式定义,int arr[],一般专业点都不会这样定义哦,
import java.util.Scanner;
public class SumOfSub {
int M,n;
int w[];
int x[];
int count=0;
public void sumofsub(int s,int k,int r){
x[k]=1;
if(s+w[k]==M){
count++;
for(int j=k+1;jn;j++)
x[j]=0;
for(int i=0;in;i++)
if(x[i]==1)
System.out.print(w[i]+" ");
System.out.println();
}
else if(s+w[k]+w[k+1]=M)
sumofsub(s+w[k],k+1,r-w[k]);
if(s+r-w[k]=Ms+w[k+1]=M){
x[k]=0;
sumofsub(s,k+1,r-w[k]);
}
}
public SumOfSub(){
int r=0;
Scanner reader=new Scanner(System.in);
System.out.println("输入M和n:");
M=reader.nextInt();
n=reader.nextInt();
w=new int[n];
x=new int[n];
System.out.println("输入集合:");
for(int i=0;in;i++){
w[i]=reader.nextInt();
r=r+w[i];
}
sumofsub(0,0,r);
System.out.println("共有"+count+"种组合");
}
public static void main(String[] args) {
SumOfSub s=new SumOfSub();
}
}
//子集合数问题,这个程序可以测试你输入的所有集合的这类问题。
M为和 就是你题目中的10,n表示集合个数,输入集合 即你题目中的a的所有元素
我用程序运行了下你的题目 结果是:
2 3 5
2 8
1 5 4
共有3种组合