[编程题] 数字翻转

来源:互联网 发布:红蜘蛛软件怎么退出 编辑:程序博客网 时间:2024/04/26 04:05

对于一个整数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;}}



0 0