Java 如何在不使用n数组和任何库函数的情况下反转数字?

Java 如何在不使用n数组和任何库函数的情况下反转数字?,java,Java,我想在不使用数组的情况下反转一个数字。我想知道如何保存该数字。我认为在这一步中,我还需要知道该数字是一位数还是两位数等 下面是我所做的代码 @编辑 我用下面的方法解决了这个问题 public class ReverseNumber { public static void main(String[] args) { ReverseNumber obj = new ReverseNumber(); int result = obj.reverse(2199); Sy

我想在不使用数组的情况下反转一个数字。我想知道如何保存该数字。我认为在这一步中,我还需要知道该数字是一位数还是两位数等

下面是我所做的代码

@编辑

我用下面的方法解决了这个问题

public class ReverseNumber 
{
 public static void main(String[] args) 
 {
    ReverseNumber obj = new ReverseNumber();
    int result = obj.reverse(2199);
    System.out.println(result);
 }

 public int reverse(int num)
 { 
    int rnum1=0;
    for(int i=num;i!=0;)
    {
       rnum1=(rnum1*10)+(i%10);
       i=i/10;
       // write your code here
    }
    return rnum1;
 }
}

@Parker_Halo提供了一个优秀的迭代解决方案。我在这里添加了一个完整性递归解决方案:

public static int reverse(int number, int n) {
    if (number == 0)
        return n;
    return reverse(number / 10, n * 10 + number % 10);
}
你可以这样称呼它:

int rev = reverse(num, 0);

@Parker_Halo提供了一个优秀的迭代解决方案。我在这里添加了一个完整性递归解决方案:

public static int reverse(int number, int n) {
    if (number == 0)
        return n;
    return reverse(number / 10, n * 10 + number % 10);
}
你可以这样称呼它:

int rev = reverse(num, 0);

你差点就成功了!您只缺少需要将
num1
与10相乘的部分,选择循环有点不吉利:

public static int reverse(int num) {
    int input = num;
    int num1 = 0;

    while (input>0) {
        num1 = num1 * 10;
        num1 = num1 + input%10;
        input = input / 10;
    }
    return num1;
}

编辑:在执行过程中出错。。。现在它修好了

你差点就把它修好了!您只缺少需要将
num1
与10相乘的部分,选择循环有点不吉利:

public static int reverse(int num) {
    int input = num;
    int num1 = 0;

    while (input>0) {
        num1 = num1 * 10;
        num1 = num1 + input%10;
        input = input / 10;
    }
    return num1;
}


编辑:在执行过程中出错。。。现在已经解决了学校或面试问题?将数字转换为字符串,然后向后迭代字符串中的字符。@ManosNikolaidis Yes可能是,先生。@为什么会有反对票。我试着尽我所能进行编码。@Jasonarora在示例代码中,当你有4个数字时,你怎么能说最大位数是2?学校或面试问题?将数字转换为字符串,然后向后迭代字符串中的字符。@ManosNikolaidis Yes可能是,先生。@为什么会有反对票。我试着尽我所能进行编码。@Jasonarra在示例代码中,当你有4位时,你怎么能说最大位数是2位呢?103的数字是多少?我得到的是40位,而不是301位。我就是这样做的。10*3+10正如我所说的得到十=10和一=3。@ManosNikolaidis我想他误解了你在评论部分的问题;)@ManosNikolaidis这真的很好!明天我将+1,因为我今天没有选票了@ManosNikolaidis是的,非常好。不能投票,但当我获得特权时会投票。103的数字是多少?我得到40而不是301。我就是这样做的。10*3+10,因为我得到十=10和一=3。@ManosNikolaidis我想他误解了你在评论部分的问题;)@ManosNikolaidis这真的很好!明天我将+1,因为我今天没有选票了@Manosnikolaid是的,非常好。我不能投票,但当我获得特权时会投票。