蓝桥杯ALGO-93——算法训练 反置数

  算法训练 反置数  
时间限制: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);
	}

}


猜你喜欢

转载自blog.csdn.net/qq_37518622/article/details/61439666