只有形如1000这种数需要变成999,其它都是把前半段反过来拷到后半段:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
if(s.length() <= 1){
System.out.println(s);
return;
}
if(f(s)){ //只有形如1000这种数需要变成999
String r = "";
while(r.length() < s.length() - 1) r += "9";
System.out.println(r);
return;
}
StringBuilder str = new StringBuilder(s);
StringBuilder sb = new StringBuilder(s).reverse();
int n = s.length();
str.replace(n/2, n, sb.substring(n/2, n));//把前半段反过来拷到后半段
System.out.println(str);
}
static boolean f(String s){ //判断是不是形如1000这种数
boolean flag = true;
if(s.charAt(0) != '1') flag = false;
if(s.charAt(0) == '1'){
for(int i = 1; i < s.length(); ++i){
if(s.charAt(i) != '0'){
flag = false;
break;
}
}
}
return flag;
}
}
京公网安备 11010502036488号