Code: Select all
String add(String[] a, String[] b)
{
String result_s="";
int lcv=0;
int[] result = {0, 0, 0, 0, 0, 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // J Note that the array is N+1 trits long, and the last one is carry M.
if(a.length>b.length)
{
lcv=a.length;
}else{
lcv=b.length;
}
for(int i=0;i<lcv;i++)
{
int a1=Integer.valueOf(a[i]);
int b1=Integer.valueOf(b[i]);
if(((a1==1)&&(b1==1))||((a1==-1)&&(b1==-1))){
String[] tryte_=(add_rule(a[i],b[i])).split(",");
int temp=(Integer.parseInt(tryte_[0]));
if(((temp==1)&&(result[i]==1))||((temp==-1)&&(result[i]==-1))){
String[] tryte_1=(add_rule(Integer.toString(result[i]),Integer.toString(temp))).split(",");
result[i]=(Integer.parseInt(tryte_1[0]));
result[i+1]=(Integer.parseInt(tryte_1[1]));
}else{
result[i]=Integer.parseInt((add_rule(Integer.toString(result[i]),Integer.toString(temp))));
}
temp=(Integer.parseInt(tryte_[1]));
if(((temp==1)&&(result[i+1]==1))||((temp==-1)&&(result[i+1]==-1))){
String[] tryte_1=(add_rule(Integer.toString(result[i+1]),Integer.toString(temp))).split(",");
result[i+1]=(Integer.parseInt(tryte_1[0]));
//result[i+1]=(Integer.parseInt(tryte_1[1]));
}else{
result[i+1]=Integer.parseInt((add_rule(Integer.toString(result[i+1]),Integer.toString(temp))));
}
}
else
{
int temp=(Integer.parseInt((add_rule(a[i],b[i]))));
if(((temp==1)&&(result[i]==1))||((temp==-1)&&(result[i]==-1))){
String[] tryte_1=(add_rule(Integer.toString(result[i]),Integer.toString(temp))).split(",");
result[i]=(Integer.parseInt(tryte_1[0]));
result[i+1]=(Integer.parseInt(tryte_1[1]));
}else{
result[i]=Integer.parseInt((add_rule(Integer.toString(result[i]),Integer.toString(temp))));
}
}
result_s=result_s+Integer.toString(result[i]);
}
result_s=result_s+Integer.toString(result[lcv]);
return result_s;
}