java,判断数组内数值为1还是0~通过前三个数值,判断后面的,不显示结果~求教!
函数想得到的数组是r[5][l],l是长度是用户指定的,b是个[5][3]数组,是r的前三列。对于每一个r[][n]通过以下条件判断r的剩下数:inti1,如果r[][i...
函数想得到的数组是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<r.length;i++){
for (int j=0;j<r[i].length;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<r[i].length;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<r.length;i++){
for (int j=0;j<r[i].length;j++){
System.out.print(r[i][j]+",");
}
System.out.print("\n");
}*/
return 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<r.length;i++){
for (int j=0;j<r[i].length;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<r[i].length;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<r.length;i++){
for (int j=0;j<r[i].length;j++){
System.out.print(r[i][j]+",");
}
System.out.print("\n");
}*/
return r;
} 展开
展开全部
代码如下:
public class TestArray {
public static void main(String[] args){
TestArray ta = new TestArray();
int arrayLength = 5;
String arrayB[][] = {{"1","0","1"},{"1","1","1"},{"0","0","1"},{"1","0","0"},{"1","1","0"}};
String arrayA[][] = ta.getResult( arrayB, 2);
}
private String[][] getResult(String[][] arrayB, int l){
if(l<0) return null;
String arrayA[][] = new String[arrayB.length][arrayB[0].length+l];
for(int i=0; i<arrayA.length; i++){
for(int j=0; j<arrayA[0].length; j++){
if(j<3){
arrayA[i][j] = arrayB[i][j];
}else{
arrayA[i][j] = this.calculator(arrayA[i][j-3], arrayA[i][j-2], arrayA[i][j-1]);
}
System.out.print("["+arrayA[i][j]+"]");
if(j == arrayA[0].length -1){
System.out.println("|");
}else{
System.out.print(",");
}
}
}
return arrayA;
}
//用于根据数组前三位
private String calculator( String i, String j, String k){
String result = "x";
if("0".equals(k)||"0".equals(j)){
return "1";
}else if("1".equals(k)&&"1".equals(j)&&"1".equals(i)){
return "0";
}
return result;
}
}
输出结果:
[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]|
public class TestArray {
public static void main(String[] args){
TestArray ta = new TestArray();
int arrayLength = 5;
String arrayB[][] = {{"1","0","1"},{"1","1","1"},{"0","0","1"},{"1","0","0"},{"1","1","0"}};
String arrayA[][] = ta.getResult( arrayB, 2);
}
private String[][] getResult(String[][] arrayB, int l){
if(l<0) return null;
String arrayA[][] = new String[arrayB.length][arrayB[0].length+l];
for(int i=0; i<arrayA.length; i++){
for(int j=0; j<arrayA[0].length; j++){
if(j<3){
arrayA[i][j] = arrayB[i][j];
}else{
arrayA[i][j] = this.calculator(arrayA[i][j-3], arrayA[i][j-2], arrayA[i][j-1]);
}
System.out.print("["+arrayA[i][j]+"]");
if(j == arrayA[0].length -1){
System.out.println("|");
}else{
System.out.print(",");
}
}
}
return arrayA;
}
//用于根据数组前三位
private String calculator( String i, String j, String k){
String result = "x";
if("0".equals(k)||"0".equals(j)){
return "1";
}else if("1".equals(k)&&"1".equals(j)&&"1".equals(i)){
return "0";
}
return result;
}
}
输出结果:
[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]|
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询