算法训练 反置数
时间限制:1.0s 内存限制:512.0MB
问题描述
一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数。如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了。比如说,1245的反置数是5421,而1200的反置数是21。请编写一个程序,输入两个整数,然后计算这两个整数的反置数之和sum,然后再把sum的反置数打印出来。要求:由于在本题中需要多次去计算一个整数的反置数,因此必须把这部分代码抽象为一个函数的形式。
输入格式:输入只有一行,包括两个整数,中间用空格隔开。
输出格式:输出只有一行,即相应的结果。
输入输出样例
输入格式:输入只有一行,包括两个整数,中间用空格隔开。
输出格式:输出只有一行,即相应的结果。
输入输出样例
样例输入
435 754
样例输出
199
import java.util.Scanner;
/**
*
* @author hhit.soft141.xxf
* @date 2017-2-26
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String a = scanner.next();
String b = scanner.next();
char[] charArray = a.toCharArray();
char[] reverse1 = new char[charArray.length];
for (int i = 0; i < reverse1.length; i++) {
reverse1[i] = charArray[charArray.length - 1 - i];
}
int index1 = 0;
for (int i = 0; i < reverse1.length; i++) {
if (reverse1[i] != '0') {
index1 = i;
break;
}
}
char[] result1 = new char[reverse1.length - index1];
for (int i = 0; i < result1.length; i++) {
result1[i] = reverse1[i + index1];
}
Integer valueOf1 = Integer.valueOf(new String(result1));
char[] charArray1 = b.toCharArray();
char[] reverse2 = new char[charArray1.length];
for (int i = 0; i < reverse2.length; i++) {
reverse2[i] = charArray1[charArray1.length - 1 - i];
}
int index2 = 0;
for (int i = 0; i < reverse2.length; i++) {
if (reverse2[i] != '0') {
index2 = i;
break;
}
}
char[] result2 = new char[reverse2.length - index2];
for (int i = 0; i < result2.length; i++) {
result2[i] = reverse2[i + index2];
}
Integer valueOf2 = Integer.valueOf(new String(result2));
int sum = valueOf1 + valueOf2;
char[] charArray2 = String.valueOf(sum).toCharArray();
char[] reverse3 = new char[charArray2.length];
for (int i = 0; i < reverse3.length; i++) {
reverse3[i] = charArray2[charArray2.length - 1 - i];
}
int index3 = 0;
for (int i = 0; i < reverse3.length; i++) {
if (reverse3[i] != '0') {
index3 = i;
break;
}
}
char[] result3 = new char[reverse3.length - index3];
for (int i = 0; i < result3.length; i++) {
result3[i] = reverse3[i + index3];
}
Integer valueOf3 = Integer.valueOf(new String(result3));
System.out.println(valueOf3);
}
}