2015-01-31 2 views
0

Я хочу отправить в рекурсию только само число и не больше переменных !!!Как изменить число с помощью рекурсии

поэтому, я сделал код, который выполняет операцию, но у меня нет точки останова.

код:

public static int upsideDown (int number) { 
    number += (number%10)*(Math.pow(10, String.valueOf(number).length())); 
    number %= 10; 
    return upsideDown (number); 
} 
+0

вопрос непонятен, –

+3

Вперед и используйте больше переменных. Компилятор не будет возражать. –

+0

Пробем с передачей 'int' равен нулю: если вы отмените 1002, вы получите 21, потому что ведущие нули будут удалены на первой итерации. Можете ли вы использовать тип параметра String? – Bohemian

ответ

0

Вы должны хранить цифры вы работаете в локальной переменной вместо модификации number.

Вам нужно - вместо number %= 10 - to (integer) Разделить на 10 вместо.

Вы должны многократно ранее сохраненные цифры от возведенных в силу string.length - 1; вам необходимо: добавить результат этого на возвращаемое значение рекурсивного вызова до upsideDown. На самом деле, цикл цикла над length - 1, умножая на 10 каждый раз через цикл, будет более эффективным, чем использование pow.

Код выхода должен быть if (number == 0) return 0; в начале метода.