Accepted
代码
信息
- 递交者
- 类型
- 递交
- 题目
- P1010 高精度乘法
- 比赛
- 暑假摸鱼第三弹
- 题目数据
- 下载
- 语言
- Java
- 递交时间
- 4 年前
- 评测时间
- 4 年前
- 评测机
- 分数
- 100
- 总耗时
- 1019ms
- 峰值内存
- 9.852 MiB
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
String nums1,nums2;
nums1=in.next();
nums2=in.next();
Main k=new Main();
String ans=k.multiply(nums1,nums2);
System.out.println(ans);
}
public String multiply(String nums1, String nums2) {
if (nums1.equals("0") || nums2.equals("0")) {
return "0";
}
int m = nums1.length();
int n = nums2.length();
int[] ansArr = new int[n + m];
for (int i = m - 1; i >= 0; i--) {
int x = nums1.charAt(i) - '0';
for (int j = n - 1; j >= 0; j--) {
int y = nums2.charAt(j) - '0';
ansArr[i + j + 1] += x * y;
}
}
for (int i = m + n - 1; i > 0; i--) {
ansArr[i - 1] += ansArr[i] / 10;
ansArr[i] %= 10;
}
int index = ansArr[0] == 0 ? 1 : 0;
StringBuffer ans = new StringBuffer();
while (index < m + n) {
ans.append(ansArr[index]);
index++;
}
return ans.toString();
}
}