import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 第一个整数 * @param t string字符串 第二个整数 * @return string字符串 */ public String solve (String s, String t) { int n = s.length()+t.length(); int[] arr = new int[n];//存计算得的数 //平时数学计算的逻辑 for(int i=s.length()-1;i>=0;i--){ for(int j=t.length()-1;j>=0;j--){ int x=s.charAt(i)-'0'; int y=t.charAt(j)-'0'; int carry=x*y/10;//进位 int remainder=x*y%10;//余数 arr[i+j+1]+=remainder; if(arr[i+j+1]>=10){ carry+=arr[i+j+1]/10; arr[i+j+1]%=10; } arr[i+j]+=carry; } } //计算结果 StringBuffer res = new StringBuffer(); for(int i=0;i<arr.length;i++){ //去掉前缀0 if(arr[i]!=0||res.length()!=0){ res.append(arr[i]); } } //res为空(在上面计算结果的步骤中把所有0去掉了,所以为空),说明为0 return res.length()==0?"0":res.toString(); } }