整数反向输出(将数字固定为0)

时间:2018-09-09 07:45:44

标签: java

我正在尝试反转代码的输出,并且可以正常工作,问题是当我输入12345678910时未显示“ 10”。

import java.util.Scanner;
public class Test3{
     public static void main(String args[]) {
     Scanner in=new Scanner(System.in);
     int num=0,rev=0,rev1=0,limit=0,num1=0;  
     System.out.print("Enter A Number: ");
     limit=in.nextInt();

        for (int i=0;i<limit;i++){
           num=in.nextInt();

             while (num >0) {
                 rev = rev*10 + num % 10;
                    num /= 10;
              }
          }
     num1=rev;
         while(num1>0){
           rev1 = rev1 * 10 + num1 %10;
               num1 /=10;

   }
       System.out.println(rev1);
  }
}

2 个答案:

答案 0 :(得分:0)

您的代码有点复杂:

public static String ReturnString()
{
    long input = 12345678910L;
    String inputAsString = Long.toString(input);
    String rev = "";
    for (int temp = inputAsString.length() - 1; temp > -1; temp--)
    {
        rev += inputAsString.charAt(temp);
    }

return rev;

}

答案 1 :(得分:0)

  

12345678910“ 10”未显示

因为循环while (num >0)10运行两次,结果rev溢出并保持负值(-539222978),因为int可以持有的金额不超过2^32-1,它会转为负值({​​{1}})。为何打印出-539222978初始值revl的原因,

因此,请尝试使用0

StringBuilder