我正在尝试反转代码的输出,并且可以正常工作,问题是当我输入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);
}
}
答案 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