题解 | #大数乘法# 先去全部加到数组力,在对他进行进位操
大数乘法
https://www.nowcoder.com/practice/c4c488d4d40d4c4e9824c3650f7d5571
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串 第一个整数
* @param t string字符串 第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
// write code here
if (s.charAt(0) - '0' == 0 ||t.charAt(0) - '0' == 0 ) {
return "0";
}
StringBuffer ss = new StringBuffer(s).reverse();
StringBuffer tt = new StringBuffer(t).reverse();
int[] arr = new int[s.length() + t.length()-1];
for (int i = 0; i < ss.length(); i++) {
for (int j = 0; j < tt.length(); j++) {
arr[i + j] += (ss.charAt(i) - '0') * (tt.charAt(j) - '0');
}
}
//处理进位
StringBuffer ret = new StringBuffer();
int plus = 0;
for (int i = 0; i < arr.length; i++) {
plus += arr[i];
ret.append(plus % 10);
plus /= 10;
}
while (plus != 0) {
ret.append(plus % 10);
plus /= 10;
}
return ret.reverse().toString();
}
}
查看6道真题和解析