PAT_B_1079_Java(20分)

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigInteger;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
		BigInteger a = new BigInteger(bf.readLine());
		if (check(a)) {
			out.println(a + " is a palindromic number.");
		} else {
			BigInteger b = reverse(a);
			boolean f = true;
			for (int i = 0; i < 10; i++) {
				BigInteger c = a.add(b);
				out.println(a + " + " + b + " = " + c);
				if (check(c)) {
					out.print(c + " is a palindromic number.");
					f = false;
					break;
				}
				a = c;
				b = reverse(c);
			}
			if (f) {
				out.print("Not found in 10 iterations.");
			}
		}
		out.flush();
	}

	static BigInteger reverse(BigInteger a) {
		String t = a.toString();
		String r = "";
		for (int i = 0; i < t.length(); i++) {
			r = t.charAt(i) + r;
		}
		return new BigInteger(r);
	}

	static boolean check(BigInteger a) {
		String t = a.toString();
		for (int i = 0; i < t.length() / 2; i++) {
			if (t.charAt(i) != t.charAt(t.length() - 1 - i))
				return false;
		}
		return true;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_43511405/article/details/107432522