import java.io.*; public class Solution{  public static void main(String[] args){   /*int[] a=new int[11];   int[] back=new int[11];   int[] m=new int[11];   int[] negm=new int[11];   int[] q=new int[11];*/      int[] a={1,1,1,1,1,1,1,1,1,1,1,1};   int[] back={1,1,1,1,1,1,1,1,1,1,1,1};   int[] m={0,0,0,0,0,0,0,0,1,1,0,1};   int[] negm={1,1,1,1,1,1,1,1,0,0,1,1};   int[] q={1,1,1,1,0,1,1,0,1,1,1,1};   String flag=new String("+");   boolean suc=true;      printArray(a);   System.out.print("\t");   printArray(q);   System.out.print("\t");   System.out.println("Initial");      for(int n=0;n<12;n++){    shift(a);    a[a.length-1]=q[0];    shift(q);    back=copy(a);    printArray(a);    System.out.print("\t");    printArray(q);    System.out.print("\t");    System.out.println("Shift");        if(a[0]==m[0]){     a=add(a,negm);     printArray(a);     System.out.print("\t\t\t");     System.out.println("-");    }    else{     a=add(a,m);     printArray(a);     System.out.print("\t\t\t");     System.out.println("+");    }        if(a[0]==back[0]) suc=true;    else suc=false;        if(suc||zero(a)) set(q,1);    if(!suc&&!zero(a)){     set(q,0);     a=copy(back);     printArray(a);     System.out.print("\t");     printArray(q);     System.out.print("\t");     System.out.println("Backup");         }       }           }    public static int[] add(int[] a,int[] b){   int c=0;   int index;   int[] result=new int[12];   for(index=a.length-1;index>-1;index--){    result[index]=(a[index]+b[index]+c)%2;    c=(a[index]+b[index]+c)/2;    //System.out.println(c);   }   return result;     }    public static void shift(int[] a){   int index;   for(index=0;index<a.length-1;index++){    a[index]=a[index+1];   }   a[index]=0;     }    public static void set(int[] q,int value){   if(q[q.length-1]!=value){    q[q.length-1]=value;    System.out.print("\t\t");    printArray(q);    System.out.print("\t");    System.out.println("Set "+value);       }  }    public static int[] copy(int[] source){   int[] aim=new int[source.length];   for(int index=0;index<source.length;index++)    aim[index]=source[index];   return aim;  }    public static boolean zero(int[] a){   boolean f=true;   for(int i=0;i<a.length;i++){    if(a[i]!=0) f=false;   }   return f;  }    public static void printArray(int[] arr){   for(int i=0;i<arr.length;i++){    System.out.print(arr[i]);    if((i+1)%4==0&&(i+1)!=arr.length)     System.out.print(',');   }  } } 附答案: 1111,1111,1111 1111,0110,1111 Initial 1111,1111,1111 1110,1101,1110 Shift 0000,0000,1100   + 1111,1111,1111 1110,1101,1110 Backup 1111,1111,1111 1101,1011,1100 Shift 0000,0000,1100   + 1111,1111,1111 1101,1011,1100 Backup 1111,1111,1111 1011,0111,1000 Shift 0000,0000,1100   + 1111,1111,1111 1011,0111,1000 Backup 1111,1111,1111 0110,1111,0000 Shift 0000,0000,1100   + 1111,1111,1111 0110,1111,0000 Backup 1111,1111,1110 1101,1110,0000 Shift 0000,0000,1011   + 1111,1111,1110 1101,1110,0000 Backup 1111,1111,1101 1011,1100,0000 Shift 0000,0000,1010   + 1111,1111,1101 1011,1100,0000 Backup 1111,1111,1011 0111,1000,0000 Shift 0000,0000,1000   + 1111,1111,1011 0111,1000,0000 Backup 1111,1111,0110 1111,0000,0000 Shift 0000,0000,0011   + 1111,1111,0110 1111,0000,0000 Backup 1111,1110,1101 1110,0000,0000 Shift 1111,1111,1010   +   1110,0000,0001 Set 1 1111,1111,0101 1100,0000,0010 Shift 0000,0000,0010   + 1111,1111,0101 1100,0000,0010 Backup 1111,1110,1011 1000,0000,0100 Shift 1111,1111,1000   +   1000,0000,0101 Set 1 1111,1111,0001 0000,0000,1010 Shift 1111,1111,1110   +   0000,0000,1011 Set 1
   
 
  |