package actionWords.StorageDeviceMgmt.test;
import java.util.Scanner;
public class BigInterSubtract {
// Function for finding sum of larger numbers
static String findSub(String str1, String str2) {
// Before proceeding further, make sure length
// of str2 is larger.
boolean flag = false;
if (str1.length() < str2.length()) {
String t = str1;
str1 = str2;
str2 = t;
flag = true;
} else if (str1.length() == str2.length()) {
for (int i = 0; i < str1.length(); i++) {
if (str1.charAt(i) < str2.charAt(i)) {
String t = str1;
str1 = str2;
str2 = t;
flag = true;
break;
}else if (str1.charAt(i) > str2.charAt(i)) {
break;
}else {
continue;
}
}
}
// Take an empty String for storing result
String str = "";
// Calculate length of both String
int n1 = str1.length();
int n2 = str2.length();
// Reverse both of Strings
str1 = new StringBuilder(str1).reverse().toString();
str2 = new StringBuilder(str2).reverse().toString();
int carry = 0;
for (int i = 0; i < n2; i++) {
// Do school mathematics, compute sum of
// current digits and carry
int strInt_1 = (int) (str1.charAt(i) - '0');
int strInt_2 = (int) (str2.charAt(i) - '0');
int sub = ( strInt_1 - strInt_2 - carry);
//System.out.println("str1Int: " + strInt_1 + "str2Int: " + strInt_2 + "sub: " + sub );
if (sub >= 0) {
str += (char) (sub + '0');
carry = 0;
} else {
str += (char) ((sub+10) + '0');
carry = 1;
}
//System.out.println("str1Int: " + strInt_1 + "str2Int: " + strInt_2 + "str: " + str );
}
// Add remaining digits of larger number
for (int i = n2; i < n1; i++) {
int sum = ((int) (str1.charAt(i) - '0') - carry);
if (sum >= 0) {
str += (char) (sum + '0');
carry = 0;
} else {
str += (char) (-sum + '0');
carry = 1;
}
}
// reverse resultant String
str = new StringBuilder(str).reverse().toString();
int len = str.length();// 取得字符串的长度
int index = 0;// 预定义第一个非零字符串的位置
char strs[] = str.toCharArray();// 将字符串转化成字符数组
for (int i = 0; i < len; i++) {
if ('0' != strs[i]) {
index = i;// 找到非零字符串并跳出
break;
}
}
String strLast = "0";
if (index > 0) {
strLast = str.substring(index, len);// 截取字符串
}else {
strLast = str;
}
//strLast = new StringBuilder(strLast).reverse().toString();
if (flag)
strLast = "-" + strLast;
return strLast;
}
// Driver code
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner in = new Scanner(System.in);
int num = in.nextInt();
String[] outs = new String[num];
for (int i = 0; i < num; i++) {
String a = in.next();
String b = in.next();
outs[i] = "Case " + (i + 1) + ":\n" + a + " - " + b + " = " + findSub(a, b);
}
for (String str : outs) {
System.out.println(str);
System.out.println();
}
}
}