Получи заданное число
Реализуй метод createExpression(int number).
Метод createExpression вызывается с одним параметром number. Этот параметр — число от 1 до 3000 включительно.
Нужно вывести арифметическое выражение, результатом которого является число number.
Можно использовать числа: 1, 3, 9, 27, 81, 243, 729, 2187 не более, чем по одному разу.
Можно использовать знаки: «+» и «—» любое количество раз.
Обрати внимание, что перед каждым числом в искомой строке обязательно должен быть знак плюс или минус.
Перед выражением выведи [переданное число] =. (Смотри примеры вывода ниже).
Пример1:
Переданное число:
74
Ожидаемый вывод:
74 = - 1 + 3 - 9 + 81
public void createExpression(int number)
{
int n = number;
int[] m = {1,3,9,27,81,243,729,2187,6561};
StringBuilder builder = new StringBuilder("");
StringBuilder pu;
if (number <= 3000 && number >= 1)
{
for (int i = 8; i > -1; --i)
{
if (Math.abs(n*2) > m[i])
{
pu = new StringBuilder(String.valueOf(m[i]));
pu = pu.append(builder);
builder = pu;
pu = new StringBuilder("");
if (n > 0)
{
pu = pu.append(" + ").append(builder);
builder = pu;
n = Math.abs(n) - m[i];
}
else if (n < 0)
{
pu = pu.append(" - ").append(builder);
builder = pu;
n = Math.abs(Math.abs(n) - m[i]);
}
if (n == 0)
break;
}
}
}
else
System.out.println("Number is not valid");
System.out.println(number + " =" + builder.toString());//напишите тут ваш код
}