1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
|
public static String padLeft(String s, int n) {
return String.format("%1$" + n + "s", s);
}
public static String multiply(int a, int b) {
StringBuilder sb = new StringBuilder();
int aLength = String.format("%d", a).length();
int bLength = String.format("%d", b).length();
sb.append(a + "*" + b + "\n");
sb.append(padLeft("", aLength + bLength + 1).replace(' ', '-') + "\n");
int endPos = aLength + 2;
String bStr = String.format("%d", b);
for (int i = 0; i < bLength; i++) {
int tmp = a * (bStr.charAt(i) - '0');
String tmpStr = String.format("%d", tmp);
sb.append(padLeft(tmpStr, endPos) + "\n");
endPos++;
}
sb.append(padLeft("", aLength + bLength + 1).replace(' ', '-') + "\n");
sb.append(padLeft(String.format("%d", a * b), aLength + bLength + 1)
+ "\n");
return sb.toString();
} |