题目
给定两个非负整数(不含前导 00) A 和 B,请你计算 A×B 的值。
输入格式
共两行,第一行包含整数 A,第二行包含整数 B
输出格式
共一行,包含 A×B 的值。
数据范围
1≤A的长度≤100000
0≤B≤100000
输入样例:
2
3
输出样例:
6
代码
这道题的b不用专门转换为数组,因为长度并不大,所以没有这个必要去转换
java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String a = in.next();
int[] a1 = new int[a.length()];
for (int i = 0;i < a.length();i ++) {
a1[i] = a.charAt(i) - '0';
}
int b = in.nextInt();
Integer[] c = mul(a1, b);
for (int i = c.length - 1;i >= 0;i --) {
System.out.print(c[i]);
}
}
private static Integer[] mul(int[] a1, int b) {
List<Integer> c1 = new ArrayList<>();
int t = 0;
for (int i = a1.length - 1;i >= 0 || t > 0;i --) {
if (i >= 0) {
t += a1[i] * b;
}
c1.add(t % 10);
t /= 10;
}
while (!c1.isEmpty() && c1.get(c1.size() - 1) == 0) c1.remove(c1.size() - 1);
if (c1.isEmpty()) {
c1.add(0);
}
return c1.toArray(new Integer[0]);
}
}