对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:
如果 X = 123,则rev(X) = 321;
如果 X = 100,则rev(X) = 1.
现在给出整数x和y,要求rev(rev(x) + rev(y))为多少?
输入描述:
输入为一行,x、y(1 ≤ x、y ≤ 1000),以空格隔开。
输出描述:
输出rev(rev(x) + rev(y))的值
输入例子:
123 100
输出例子:
223
程序代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
int num1 = sc.nextInt();
int num2 = sc.nextInt();
int res1 = Main.Solution(num1);
int res2 = Main.Solution(num2);
int res = Main.Solution(res1 + res2);
System.out.println(res);
}
}
public static int Solution(int num) {
String str = String.valueOf(num);
StringBuffer stringBuffer = new StringBuffer(str);
String rs = stringBuffer.reverse().toString();
int result = 0;
String regex = "^[1-9]\\d*$";
if (rs.matches(regex)) {
result = Integer.parseInt(rs);
} else {
String newStr = rs.replaceAll("^(0+)", "");
result = Integer.parseInt(newStr);
}
return result;
}
}