使用for循环在Java中反转整数

时间:2013-03-11 22:13:36

标签: java for-loop reverse

这是一个家庭作业问题

如何用for循环反转Java中的整数?用户将输入整数(我不知道它将持续多长时间),我需要反转它。即:如果他们输入12345,我的程序返回54321。

这是catch,你不能在这个问题中使用String,StringBuffer,数组或其他高级结构。

我对我需要做的事情有基本的了解。我的问题是......在for循环中,条件不需要是x<整数的长度(位数)?没有String我该怎么做?

感谢任何输入,如果需要,我会添加更多信息。

编辑:

当然,在内省之后,我意识到我应该使用另一个for循环来做到这一点。我所做的是创建一个for循环,通过除以10来计算数字:

       int input = scan.nextInt();
        int n = input;
        int a = 0;

           for (int x = 0; n > 0; x++){
               n = n/10;
                a = a + 1;
            }

编辑2:

这就是我所拥有的

 int input = scan.nextInt();
        int n = input;
        int a = 0;
        int r = 0;
           for (int x = 0; n > 0; x++){
               n = n/10;
                a = a + 1;
            }
           for (int y = 0; y < n; y++) { 
                r = r + input%10;
                input = input/10;
            }
          System.out.println(input);

当我运行它时,它没有反转它,它只给了我数字。即:如果我输入1234,它返回1234.这对我没有任何意义,因为我将输入的最后一位添加到r,所以为什么不是4321?

5 个答案:

答案 0 :(得分:6)

虽然您的原始数字非零,但请将结果乘以10,然后将原始数字除以10除以。

例如,假设您的原始号码是12345.从结果0开始。

  1. 将结果乘以10并加5,得到5.(原来现在是1234。)
  2. 将结果乘以10并加4,给你54.(原来现在是123。)
  3. 将结果乘以10并加3,得到543.(原= 12。)
  4. 乘以结果blah blah 5432.(original = 1。)
  5. 乘,添加,bam。 54321.在int数学中,1/10为零。我们已经完成了。
  6. 你的任务,如果你选择接受它,就是用Java实现它。 :)(提示:除法和余数是Java中的单独操作。%是余数运算符,/是除法运算符。分别取余数,然后将原值除以10.)

答案 1 :(得分:5)

您需要使用数学来访问每个数字。以下是一些启动的提示:

使用% mod运算符提取数字的最后一位数字。 使用/除法运算符删除数字的最后一位数字。 如果数字中没有更多数字,请停止循环。

答案 2 :(得分:0)

这可能不是正确的方法,但

   public static int reverseMe(int i){

    int output;
    String ri = i + "";

    char[] inputArray = ri.toCharArray();
    char[] outputArray = new char[inputArray.length];

    for(int m=0;m<inputArray.length;m++){
        outputArray[inputArray.length-m-1]=inputArray[m];
    }

    String result = new String(outputArray);
    output = Integer.parseInt(result);

    return output;
}

答案 3 :(得分:0)

    public static void reverse2(int n){
    int a;


    for(int i = 0; i < n  ; i ++){
        a = n % 10;
        System.out.print(a);
        n = n / 10;


        if( n < 10){
            System.out.print(n);
            n = 0;
        }
        }

    }

答案 4 :(得分:0)

这是您的代码更正的答案。

import static java.lang.Math.pow;
import java.util.*;
public class MyClass {
public static void main(String args[]) {
    Scanner scan=new Scanner(System.in);
    int input = scan.nextInt();
    int n = input;
    int a = 0;
    int r = 0;
       for (; n > 0;){
           n = n/10;
            a = a + 1;
        }
       for (int y = 0; y < input;a--) { 
            r =(int)( r + input%10*pow(10,a-1));
            input = input/10;
        }
      System.out.println(r);
}
}