⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3733683_ac_469ms_5308k.java

📁 北大大牛代码 1240道题的原代码 超级权威
💻 JAVA
字号:
import java.util.*;
import java.math.*;

public class Main {
	private Scanner in;

	public static void main(String[] args) {
		new Main().run();
	}

	private void run() {
		in = new Scanner(System.in);
		String f, c, r, str;

		while (in.hasNext()) {
			str = in.next();
			int index = str.indexOf('-');
			if (index == -1) {
				break;
			}
			f = str.substring(0, index);
			r = str.substring(index + 1);
			int i;
			c = "";
			for (i = r.length() - 1; i > 0; i--) {
				c = r.substring(i);
				if (less(LSD(c.length(), f), c)) {
					if (r.equals(MSD(f.length() - c.length(), f) + c))  {
						break;
					}
				} else {
					if (r.equals((power(c.length())
						.add(new BigInteger(MSD(f.length() - c.length(), f) + c))).toString())) {
						break;
					}
				}
			}
			if (i == 0) {
				c = r;
			}
			System.out.println(f + "-" + c);
		}
	}

	private boolean less(String a, String b) {
		return new BigInteger(a).compareTo(new BigInteger(b)) < 0;
	}

	private String MSD(int a, String b) {
		if (a <= 0) {
			return "";
		}
		return b.substring(0, a);
	}

	private String LSD(int a, String b) {
		String tmp = b;
		
		while (tmp.length() < a) {
			tmp = "0" + tmp;
		}
		return tmp.substring(tmp.length() - a);
	}

	private BigInteger power(int b) {
		String ret = "1";

		for (int i = 0; i < b; i++) {
			ret += "0";
		}
		return new BigInteger(ret);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -