Доброго времени суток всем.
Вывод совпадает с примерами из условия. Но код не нравится валидатору. Помогите пож-та.
package com.javarush.task.task30.task3012;
/*
Получи заданное число
*/
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
solution.createExpression(1234);
}
public void createExpression(int number) {
BigInteger tri = new BigInteger(String.valueOf(number));
String triStr = tri.toString(3);
ArrayList<String> uh = new ArrayList<>(Arrays.asList(triStr.split("")));
if (uh.get(0).equals("2")){uh.set(0,"-1");uh.add(0,"1");}
for (int i = 0; i <uh.size() ; i++) {
if (uh.get(i).equals("2")){
uh.set(i-1,String.valueOf(Integer.parseInt(uh.get(i-1))+1));
uh.set(i,"-1");
}
}
if (uh.get(0).equals("2")){uh.set(0,"-1");uh.add(0,"1");}
Collections.reverse(uh);
StringBuilder strB = new StringBuilder();
strB.append(number).append(" =");
for (int i = 0; i <uh.size() ; i++) {
if(uh.get(i).equals("1")){uh.set(i,"+1");}
if(uh.get(i).equals("0"))continue;
if(Integer.parseInt(uh.get(i))>0)strB.append(" + ").append((int)Math.pow(3,i));
if(Integer.parseInt(uh.get(i))<0)strB.append(" - ").append((int)Math.pow(3,i));
}
System.out.println(strB.toString());
//напишите тут ваш код
}
}