题解 | #[NOIP2011]数字反转#
[NOIP2011]数字反转
https://ac.nowcoder.com/acm/problem/16584
解决此题的关键在于如何对一个整数进行反转,而且不是普通的反转,反转必须满足反转后的数是常见的整数形式,比如-1200,反转后必须是-21,而不是-0021,这样的话我们就不能通过普通的反转了。我们可以先把获取到的字符串转变成整型(Integer.parseInt()方法),得到的整型判断其大小是否为负数,正数的话可以通过遍历自加得到新字符串,如果是负数的话就要注意“-”,所以遍历的最小索引值是1,后面再对为负数的val,进行输出最前面加“-”,从而能够解决此题!
import java.util.*; public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
int val=Integer.parseInt(str);
String s="";
if(val<0) {
for(int i=str.length()-1;i>0;i--) {
s=s+Character.toString(str.charAt(i));
}
}
else {
for(int i=str.length()-1;i>=0;i--) {
s=s+Character.toString(str.charAt(i));
}
}
int v=Integer.parseInt(s);
if(val<0) {
System.out.print("-"+v);
}
else {
System.out.print(v);
}
}
}