Я пробовал это некоторое время, но не смог заставить его работать. Я пытаюсь использовать метод для преобразования целого числа без использования строк или массивов. Например, 123 следует отменить до 321 в целочисленной форме.Использование рекурсии для обращения к целому числу без использования строк
Моя первая попытка:
/** reverses digits of integer using recursion */
public int RevDigs(int input)
{
int reverse = 0;
if(input == 0)
{
return reverse;
}
int tempRev = RevDigs(input/10);
if(tempRev >= 10)
reverse = input%10 * (int)Math.pow(tempRev/10, 2) + tempRev;
if(tempRev <10 && tempRev >0)
reverse = input%10*10 + tempRev;
if(tempRev == 0)
reverse = input%10;
return reverse;
}//======================
Я также попытался использовать это, но это, кажется, запутались средние цифры:
/** reverses digits of integer using recursion */
public int RevDigs(int input)
{
int reverse = 0;
if(input == 0)
{
return reverse;
}
if(RevDigs(input/10) == 0)
reverse = input % 10;
else
{
if(RevDigs(input/10) < 10)
reverse = (input % 10) *10 + RevDigs(input/10);
else
reverse = (input % 10)* 10 * (RevDigs(input/10)/10 + 1) + RevDigs(input/10);
}
return reverse;
}
Я пытался смотреть на некоторые примеры на сайте, однако Я не мог заставить их работать правильно. Для дальнейшего уточнения я не могу использовать String или массив для этого проекта и должен использовать рекурсию. Может кто-то, пожалуйста, помогите мне решить проблему. Спасибо.
извините вопрос нуждается в переформатировании, мой код не показывать правильно, я исправлю, что – abysmaldan
Вы что усложняет это. Я не вижу причин, по которым вам нужно будет сделать рекурсивный вызов в 'if'. Он может работать, но определенно трудно следовать и, похоже, подвержен ошибкам. – ChiefTwoPencils