函数想得到的数组是r[5][l],l是长度是用户指定的,b是个[5][3]数组,是r的前三列。对于每一个r[][n]通过以下条件判断r的剩下数:inti1,如果r[][i-1]="0"==>r[][i]="1"2,如果r[][i-1]...
函数想得到的数组是r[5][l],l是长度是用户指定的,b是个[5][3]数组,是r的前三列。对于每一个r[][n]通过以下条件判断r的剩下数:
int i
1,如果r[][i-1]="0"==>r[][i]="1"
2,如果r[][i-1]="1",r[][i-2]="0"==>r[][i]="1"
3,如果r[][i-1]="1",r[][i-2]="1",r[][i-3]="1"==>r[][i]="0"
剩下的情况都是“x”
比如说有个r[5][5]
我已知r[][0-2]=b[][0-2]
=1,0,1;
1,1,1;
0,0,1;
1,0,0;
1,1,0
我希望通过程序推出r[5][ 5]
结果应该是
1,0,1,1,x;
1,1,1,0,1;
0,0,1,1,x;
1,0,0,1,1;
1,1,0,1,1;
这是函数部分,思路是先把未知的都赋值为x,再通过前边的判断。
但结果一直是
1,0,1,x,x;
1,1,1,x,x;
0,0,1,x,x;
1,0,0,x,x;
1,1,0,x,x;
各位大神求解!!!!!!!!!!!!!!!!!
public String[][] getresult(String[][] b,int l){
//得到排班结果
String r[][]= new String[5][l+3];
for(int i=0;i
for (int j=0;j
r[i][j]="x";
}
}
for(int i=0;i<5;i++){
for (int j=0;j<3;j++){
r[i][j]=b[i][j];
}
}
for(int i=0;i<5;i++){
for(int j=3;j
if(r[i][j-1]=="0"){
r[i][j]="1";
}
if((r[i][j-1]=="1")&&(r[i][j-2]=="0")){
r[i][j]="1";
}
if((r[i][j-1]=="1")&&(r[i][j-2]=="1")&&(r[i][j-2]=="1")){
r[i][j]="0";
}
}
}
/*System.out.println("排班结果如下:");
for(int i=0;i
for (int j=0;j
System.out.print(r[i][j]+",");
}
System.out.print("\n");
}*/
return r;
}
展开